1

私は mysql データベースと Java を使用しています。デコレーター パターンについての私の理解では、必要なオブジェクトの動作または表現が得られるまで、必要な数のデコレーターを割り当てることができるため、非常に柔軟なランタイムが可能になるということです。以前にいくつかのデコレータのプログラミングに成功しましたが、装飾されたオブジェクトの状態をデータベース (できれば mysql) に保存したいと考えています。例えば:

コーヒー ショップのシステムをコーディングしていて、飲料のコストを表すモデルでデコレータを使用しているとします (つまり、具体的なオブジェクトはエスプレッソで、ミルク、砂糖、ホイップ クリーム、シロップなど、コーヒーに入れるもので装飾できます)。最近では.

今は、誰かが飲み物を買うたびに記録し、使用された材料を追跡したいと考えています。データベース スキーマを設計して、新しい要素が出現したときにそれを処理できるようにする最善の方法は何ですか? 現在、私には 2 つのアイデアがありますが、どちらも正しい方法とは思えません。

1)飲み物をjson文字列としてエンコードし、データベースにダンプするだけです。データアクセスオブジェクトがこれのデコードを処理できると仮定します。

2) 飲み物に可能なすべての変更を予測し、これらのそれぞれについて列を作成するようにしてください。誰かが新しい飲み物のアドオンを思いつくたびに、スキーマを変更する必要があります。

これらのいずれよりも優れたアプローチが必要です。

4

1 に答える 1

1

これには 3 つのテーブルを使用してみてください。1 つは材料用、もう 1 つは注文用、そして 2 つの間のルックアップ テーブルです。注文が作成されるたびに、orders に 1 つの行を追加し、orders_ingredients に多くの行を追加します。

create table orders {
   order_id int AUTO_INCREMENT PRIMARY KEY, 
   order_name 
);

create table orders_ingredients {
   order_id references orders(order_id)
   ingredient_id references ingredients(ingredient_id)
);

create table ingredients {
   ingredient_id int AUTO_INCREMENT PRIMARY KEY, 
   ingredient_name varchar(255)
);
于 2013-08-16T20:49:15.363 に答える