1

私は3つのテーブルを持っています:

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

ご想像のとおり、ユーザーが製品をどれだけ使用しているかをデータベースに保存したいと考えています。これらのテーブル間の関係はどうあるべきですか?

ハビ

4

1 に答える 1

0

and間の多対多の関係UserProductand 間の 1 対多の関係にFrequenceOfUseなりUserProductます (後者は関係そのものです)。

リレーションシップが単独でリレーションシップを持つことができるかどうかについては、コンセンサスがないことに注意してください。したがって、次のようにモデル化することを好む人もいます。

  1. エンティティユーザー
  2. エンティティ製品
  3. エンティティの使用法
  4. エンティティの使用頻度
  5. 1-N関係:ユーザーは 使用に参加します
  6. 1-N関係:製品は 使用に参加します
  7. N-1関係利用 Frequenceで行う

これらのモデルは両方とも、次のようにリレーショナルにモデル化されています。

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)
        )

私のブログのこの投稿は役に立つかもしれません:

于 2012-04-20T22:03:34.810 に答える