一个有关数据库设计的疑问

2012-02-13 17:12:36 +08:00
 sd4399340
现在有这样一种情况,我有一个商品的表,有一个用户的表,然后我想记录用户是否收藏了某个商品,应该怎么设计呢?

我是从用户表下手还是从商品表下手添加新的字段呢?还是应该重新建一个表。。。

不知道有没有什么好的解决方案啊,起码得比较方便的能查询某件商品有那些用户收藏了,或某个用户收藏了那些商品。
4583 次点击
所在节点    程序员
6 条回复
eric_zyh
2012-02-13 17:17:24 +08:00
国际标准:

商品表 items(id)
用户表 users(id)
商品用户映射表 items_users(id,uid,iid)

用户id=?收藏了那些商品
select * from items_users a,items b where a.iid = b.id and a.uid = ?

商品ID=?被哪些用户收藏
select * from items_users a,useris b where a.uid = b.id and a.iid = ?
tokki
2012-02-13 17:17:41 +08:00
我会新建个表 专门纪录关系-。- 不过 我好多年没弄过表了 不知道现在还有更好的设计方法没
icyflash
2012-02-13 17:18:44 +08:00
1L +1
sd4399340
2012-02-13 17:27:00 +08:00
@eric_zyh 谢谢,看来最朴实的办法往往是最起作用的办法啊~
yehuichen
2012-02-13 17:30:28 +08:00
如果你是搞java的话,你看看现在的JPA中annotation技术,可能会提供一个相对简单的方式帮助你解决这样的问题...
sd4399340
2012-02-13 17:33:43 +08:00
@yehuichen 现在用的是php,有空看看~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/27285

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX