MySQL数据库 - 用于在用户之间共享内容的表

时间:2013-08-28 09:48:40

标签: mysql database database-design sharing database-normalization

我只是想知道你认为哪一种是这种情况的最佳解决方案。

我有一个可以共享项目的应用程序。但是,这些项目可以是不同类型:照片,帖子,甚至是“帖子组”等等,所以有一个名为“帖子”的表格,另一个名为“媒体”等等。

用户将只能看到与他们共享的项目及其创建的项目。那么,您认为哪种更好?:

  • 创建一个名为'shared_items'的表,其中我将 Item_ID User_ID Item_Type

  • 为每种类型的项目制作一个表格(例如: shared_posts shared_media 等),具有与上述相同的结构(但没有< I> ITEM_TYPE 的)。

接受更多解决方案,当然,但这些是我现在想到的唯一解决方案。

如果您需要数据库结构示例,请告诉我,但我认为没有必要。

感谢您的时间!

1 个答案:

答案 0 :(得分:2)

这取决于您将如何查询数据以及查询频率。如果您需要在一个查询中获取所有共享项,则最好使用单个表。它将摆脱你的表连接。至于数据库规范化,我会说你的苍蝇分开,汤分开,去共享媒体,共享帖子,共享任何表格。