这个问题是为了找到一个切实可行的解决办法
this question
.
我需要一个半模式的设计,为我的SQL数据库。但是,我可以限制将其嵌入整个SQL范式的灵活性。在将来,迁移到无模式数据库可能是一种选择,但现在,我坚持使用SQL。
我在SQL数据库中有一个表(我们称之为
Foo
). 当向其中添加一行时,它需要能够存储任意数量的“meta”字段。例如,可以附加任意元数据,如标记、协作者等。所有字段都是可选的,但问题是它们的类型不同。有些可能是数字,有些可能是文本等。
一个简单的设计链接
一桌
OptionalValues
像这样的领域
name
value_type
,
value_string
,
value_int
,
value_date
等等,虽然它降为整体,但似乎是直接的
EAV
亚历克斯在最后一个答案中提到的模型,看起来相当浪费。而且,我想当它增长的时候,查询会非常慢。不过,我不希望按此表中的任何内容进行搜索或排序。我所需要的就是当我和你吵架的时候
福
,这些额外的属性也应该可以获得。