【问题标题】:How to design table to store user settings? [closed]如何设计表来存储用户设置? [关闭]
【发布时间】:2015-08-23 19:37:03
【问题描述】:

如果它只是为了打开和关闭一个基本功能,这应该可以吗?

USER_SETTINGS
-Id
-UserId
-SettingId
-IsEnabled

问题是某些设置需要不同的字段...这可以工作,但有更好的方法吗?

USER_SETTINGS
-Id
-UserId
-SettingId
-XMLSettings (XML data of settings)

【问题讨论】:

  • 使用 EAV 或 XMLType。我愿意使用 XML(至少如果你在 EE 上)。
  • 建议不要使用EAV。 stackoverflow.com/questions/11779252/…
  • XML 可以工作,特别是如果您有一个支持良好 XML 的数据库。其他方法也可以。 XML 和其他方法也有缺点。这完全取决于您的“设置”是什么以及您打算如何使用它们。没有标准答案。
  • 如果您不需要通过 XML 中的任何字段进行搜索,只需将其保留为 TEXT (mysql) 或 CLOB (oracle) 字段即可。

标签: mysql sql-server oracle database-design data-modeling


【解决方案1】:

A.您可以在 Oracle 上使用嵌套表或对象而不是 XML
B. 您可以创建另一个表 USER_SETTING_FIELD,该表具有 USER_SETTINGS 的外键
C. 您可以使用格式为“field1:value1;field2:value2”的简单字符串列
D. 你可以为每个字段使用额外的 SettingId

【讨论】:

    猜你喜欢
    • 2020-04-25
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多