代码之家  ›  专栏  ›  技术社区  ›  Noufal Ibrahim

无模式SQL数据库表-实际折衷

  •  3
  • Noufal Ibrahim  · 技术社区  · 15 年前

    这个问题是为了找到一个切实可行的解决办法 this question .

    我需要一个半模式的设计,为我的SQL数据库。但是,我可以限制将其嵌入整个SQL范式的灵活性。在将来,迁移到无模式数据库可能是一种选择,但现在,我坚持使用SQL。

    我在SQL数据库中有一个表(我们称之为 Foo ). 当向其中添加一行时,它需要能够存储任意数量的“meta”字段。例如,可以附加任意元数据,如标记、协作者等。所有字段都是可选的,但问题是它们的类型不同。有些可能是数字,有些可能是文本等。

    一个简单的设计链接 一桌 OptionalValues 像这样的领域 name value_type , value_string , value_int , value_date 等等,虽然它降为整体,但似乎是直接的 EAV 亚历克斯在最后一个答案中提到的模型,看起来相当浪费。而且,我想当它增长的时候,查询会非常慢。不过,我不希望按此表中的任何内容进行搜索或排序。我所需要的就是当我和你吵架的时候 ,这些额外的属性也应该可以获得。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Doc Brown    15 年前

    将字符串列“Metafields”添加到表“Foo”中,并将元数据存储为XML或JSON字符串。

    推荐文章