用户项关系的数据库设计

Dan*_*iel 0 php mysql database database-design relational-database

我正在建立一个销售小部件的网站.我有一个小部件表,每个小部件都有一些属性(小部件名称,样式等).我还有一个供用户使用的表格.窗口小部件具有唯一ID,用户还具有与之关联的唯一ID.

我的用户希望开始向其帐户"添加"小部件.每个小部件都可以添加到无限量的用户中.所以我的问题是我应该创建一个表,让我们称之为User_Widget,它将UserID与WidgetID相关联?

我想到的另一种方法是在User表中使用逗号分隔值(WidgetID1xQuantity,WidgetID2xQuantity等).如果我标准化这种格式,我可以使用php来解析它并将它们内爆到一个数组中,然后可以交叉引用它来从Widget表中提取信息.

哪一个更快/更好的做法?如果我使用User_Widget方法,如果多个用户添加相同的小部件会发生什么?我只有两个条目吗?这不会增加额外开销吗?

小工具| 用户wid1 | user1 wid1 | 用户2

搜索这些(使用JOIN等)会比其他方法慢吗?

在此先感谢您的帮助.

丹尼尔.

aza*_*zat 5

我推荐新表与关系
它会更快

  • 这是对的.不要使用逗号分隔值.未来的开发人员会追捕你并捅你的眼睛.例如,没有直接的方法来搜索两个逗号分隔字段之间的值.我之前不得不处理这个问题,并且必须创建一个存储过程来为每个查询复制临时表中的值. (2认同)