【发布时间】:2018-06-07 19:46:07
【问题描述】:
一个用户可以有 3 种类型的配置文件:A、B、C
对于每种类型的个人资料,用户可以有不同的名称、照片集和描述。
这应该如何建模?
- 将主要一次由一种类型获取,例如获取用户的 A 个人资料
- 字段未过滤,例如无过滤 where name =
- 无需担心角色/权限
- 用户界面允许用户一次更新个人资料的名称、照片或描述
单个表中的单独列:
profile
---
name_A name_B name_C photos_A photos_B photos_C description_A description_B description_C
加入另一张桌子:
profile
---
A_profile_id B_profile_id C_profile_id
A_profile
---
id name photos description
B_profile
---
id name photos description
C_profile
---
id name photos description
jsonb 按字段:
profile
---
name{A,B,C} photos{A,B,C} description{A,B,C}
jsonb 按配置文件类型:
profile
---
A_profile{name,photos,description} B_profile{name,photos,description} C_profile{name,photos,description}
嵌套的 jsonb(诱人...):
profile
---
profile{A{name,photos,description},B{name,photos,description},C{name,photos,description}}
【问题讨论】:
标签: sql postgresql database-design