V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sd4399340
V2EX  ›  程序员

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

  •  
  •   sd4399340 ·
    PinkyJie · 2012-02-13 17:12:36 +08:00 · 4777 次点击
    这是一个创建于 4671 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在有这样一种情况,我有一个商品的表,有一个用户的表,然后我想记录用户是否收藏了某个商品,应该怎么设计呢?

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

    不知道有没有什么好的解决方案啊,起码得比较方便的能查询某件商品有那些用户收藏了,或某个用户收藏了那些商品。
    6 条回复    1970-01-01 08:00:00 +08:00
    eric_zyh
        1
    eric_zyh  
       2012-02-13 17:17:24 +08:00   ❤️ 1
    国际标准:

    商品表 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
        2
    tokki  
       2012-02-13 17:17:41 +08:00
    我会新建个表 专门纪录关系-。- 不过 我好多年没弄过表了 不知道现在还有更好的设计方法没
    icyflash
        3
    icyflash  
       2012-02-13 17:18:44 +08:00
    1L +1
    sd4399340
        4
    sd4399340  
    OP
       2012-02-13 17:27:00 +08:00
    @eric_zyh 谢谢,看来最朴实的办法往往是最起作用的办法啊~
    yehuichen
        5
    yehuichen  
       2012-02-13 17:30:28 +08:00
    如果你是搞java的话,你看看现在的JPA中annotation技术,可能会提供一个相对简单的方式帮助你解决这样的问题...
    sd4399340
        6
    sd4399340  
    OP
       2012-02-13 17:33:43 +08:00
    @yehuichen 现在用的是php,有空看看~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1138 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 18:49 · PVG 02:49 · LAX 10:49 · JFK 13:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.