0

例如,如果我有一个充满folders站点范围的值的表,例如,name并且created我希望允许每个用户存储他们自己的关于这些的元数据folders(例如expanded = 1,或label_color = 'red'),我应该如何组织我的数据库?

这是此示例的图表,因为我目前正在处理它:

图表

请注意,这是与数据透视表类似的设置,或者是多次通过,只是我想存储/访问数据透视表中的数据。这是可取的还是有更好的方法来完成这种行为?

我认为这可能不是最优雅的原因是它使我的 ORM 中的连接复杂化,因为我在加载文件夹行时加入了元数据,所以当我将该文件夹作为与另一个模型的关系加载时存在双重连接。我怎样才能避免这种情况?

4

1 回答 1

1

你的方式看起来是最好的做法。我会在您的folders_usermeta 表中的user_id 和folder_id(这两个定义您的唯一行)上放置一个主键(尽管Kohana 不支持在多个列上设置主键)。

@biakaveron,我永远不会在我的数据库中存储序列化数据,这没有必要,你会失去你的语义和你的 SQL 能力。您可以在此处了解更多信息:

http://www.slideshare.net/billkarwin/sql-antipatterns-strike-back

于 2013-02-03T11:25:38.170 回答