パン屋を想像してみてください。私は、成分と 1 対多の関係を持つフォーミュラのテーブルと 1 対多の関係を持つ製品のテーブルを持っています。問題は、私はケーキを持っていますが、材料の1つがフロスティングであり、それ自体が製品です(フロスティングは多くのものに適用され、ケーキのフロスティングの量が多いため、フロスティングを個々の部分に分割することはできません変更が必要な場合があります)。このようなセットアップのテーブルのデザインは何ですか?
質問する
2260 次
3 に答える
3
材料表に 2 つの列があり、1 つは実際の材料用で、もう 1 つは他のレシピを指すものです。任意の行に 1 つだけ設定されます。
2 つの列を使用すると、参照整合性も適用できます。
于 2012-09-06T01:10:12.743 に答える
1
数式とものという 2 つのオブジェクトしかないようです。数式は、他のものの観点から物事を説明します。物のアイテムは、製品である場合とそうでない場合があります。これはバイナリ属性で、3 番目のテーブルです。スキームは次のようになります。
Stuff
-----
id : integer
name : string
FormulaPairs
------------
stuff_described_id : integer
ingredient_id : integer
amount : float
Product
-------
stuff_id : integer
クエリの例:
Apple Pie の材料のすべての ID を取得します。
select ingredient_id from Stuff s inner join FormulaPairs p
where s.id == p.stuff_described_id and s.name == 'Apple Pie'
製品のすべての名前を取得します。
select name from Stuff s inner join Product p where s.id == p.stuff_id
于 2012-09-06T01:14:31.363 に答える