データベースモデリング
スターバックスサービスモデリング
チームのモデリング
1対1の関係のデータを全てドリンクテーブルに含めると、一目で全てのデータを把握できるので入れました.(特に、頻繁にクエリーされるデータの場合は、テーブルに含めることが望ましい).
モデリング初期には,飲料画像を飲料の1対1関係のデータと見なし,飲料テーブルに含めたが,以降の拡張性を考慮して画像を個別のテーブルに生成した.(複数の画像がある場合はコントラスト)
アレルギーのある飲み物とほとんど関係があるので、真ん中のテーブルを作り、2つのテーブルをつなぎます.
各テーブルを階層化し、より高いテーブルにPKを持たせ、サブテーブルにFKを含めて(サブテーブル→親テーブル)の方向を設定します.しかし、反対の方向でも大丈夫です.
栄養情報は飲み物と一対一の関係にあるので、飲み物テーブルにはすべての栄養情報が含まれています.逆に、寸法を考慮すると、1対1の関係から1対1の関係に変更されるので、外部表に記入します.
モデリングコード
Table drinks {
id int [pk, increment]
korean_name varchar
english_name varchar
drink_info text
is_new tinyint
category_id int
}
Table categories {
id int [pk, increment]
name varchar
}
Table images {
id int [pk, increment]
image_url varchar
drink_id int
}
Ref: "drinks"."category_id" > "categories"."id"
Ref: "images"."drink_id" > "drinks"."id"
Table allergies {
id int [pk, increment]
name varchar
}
Table allergy_drink {
id int [pk, increment]
drink_id int
allergy_id int
}
Ref: "drinks"."id" < "allergy_drink"."drink_id"
Ref: "allergies"."id" < "allergy_drink"."allergy_id"
Table nutritions {
id int [pk, increment]
kcal decimal
sugar decimal
protein decimal
sodium decimal
fat decimal
caffeine decimal
drink_id int
}
Ref: "drinks"."id" - "nutritions"."drink_id"
Reference
この問題について(データベースモデリング), 我々は、より多くの情報をここで見つけました https://velog.io/@threeplef/DB-모델링テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol