产品,FrequenceOfUse和用户表的关系

时间:2012-04-20 20:47:58

标签: database data-modeling

我有3张桌子:

Product (shamppoo, toothpaste,..)
FrequenceOfUse (3 times/day, once/day,...)
User

您可以想象我想在数据库中存储用户使用产品的数量。这些表之间的关系应该是什么?

哈维

1 个答案:

答案 0 :(得分:0)

UserProduct之间的多对多关系以及FrequenceOfUseUserProduct之间的一对多关系(后者是一种关系)本身)。

请注意,关系是否可以自己建立关系尚未达成共识。所以有些人更愿意将其建模为:

  1. 实体用户
  2. 实体产品
  3. 实体用法
  4. 实体 FrequenceOfUse
  5. 1-N关系:用户 参与 用法
  6. 1-N关系:产品 参与 用法
  7. N-1关系使用情况 使用 频率
  8. 执行

    这两个模型都是关联建模的:

    CREATE TABLE user (id INT NOT NULL PRIMARY KEY, name TEXT, ...)
    CREATE TABLE product (id INT NOT NULL PRIMARY KEY, name TEXT, ...)
    CREATE TABLE frequence (id NOT NULL, description TEXT, ...)
    CREATE TABLE usage
            (
            user INT NOT NULL FOREIGN KEY REFERENCES (user),
            product INT NOT NULL FOREIGN KEY REFERENCES (product),
            frequence INT NOT NULL REFERENCES frequence,
            PRIMARY KEY (user, product)
            )
    

    您可以在我的博客中找到这篇文章: