dav*_*tgq 2 schema postgresql null database-design json
我决定使用可为空字段或 jsonb 来存储用户配置文件。最初,这将用于联系人:email
和phone
。我预计稍后可能会添加其他列,例如mobile
和website
。此外,可能还有其他不相关的字段,例如设置/首选项、保存的搜索等。
我已经决定我不想为此使用任何形式的键值存储(或任何涉及多对多关系的模式),除非有非常好的理由。
jsonb 的优点:
jsonb 的缺点:
还有什么要添加到这个优点/缺点列表中的吗?尽管我只想使用可为空的列,但我认为忽略 jsonb 是一种疏忽 - 这似乎是一个令人信服的选择。
您可以使用“两全其美”。将您知道的每个常规列实现为专用列(具有准确的正确数据类型,可能具有 NOT NULL / CHECK / PK / FK 等约束以强制执行详细规则、默认值和文档注释)并添加“全能”jsonb
非常罕见的情况/后期添加/不需要上述任何功能的高度易变属性的列。
需要明确的是:“高度易变”并不意味着该值被更新了很多,这显然会反对任何文档类型,例如jsonb
,使更新更加复杂和昂贵。这意味着属性本身(在元级别)发生了很大变化(不同的名称,稀有和随着时间的推移出现和消失或类似)。
大多数人低估了 NULL 存储的实际成本:
有关的:
归档时间: |
|
查看次数: |
870 次 |
最近记录: |