私はデータベース設計にまったく慣れていないので、ベスト プラクティスについていくつか質問があり、本当に学びたいと思っています。私はデータベース スキーマを設計しています。要件をよく理解していますが、今はそれを白黒にする問題です。
この疑似データベース レイアウトには、顧客のテーブル、注文のテーブル、製品のテーブルがあります。
TBL_PRODUCTS:
ID
説明
詳細
TBL_CUSTOMER:
ID
名
アドレス
TBL_ORDER:
ID
TBL_CUSTOMER.ID
prod1
prod2
prod3
など
各「注文」には 1 人の顧客しかいませんが、「製品」はいくつでも持つことができます。
問題は、私の場合、特定の注文の製品が任意の量 (1 回の注文で数百) になる可能性があることです。さらに、注文の各製品には「数量」以上のものが必要ですが、ページにまたがる値を持つことができます。特定の注文の特定の製品のテキストの。私の質問は、その情報をどのように保存できますか?
可変長配列を単一のフィールド値として保存できないと仮定すると、他のオプションは、何らかの方法で区切られ、アプリケーションでコードによって分割される文字列を持つことです。注文には、たとえば 100 個の製品があり、各製品には小さな int のみ、または 5000 文字またはフリー テキスト (またはその間の任意のもの) があり、その注文にのみ固有です。
その上、各注文には独自の監査証跡が必要です。これは、注文の存続期間中に多くのことが発生する可能性があるためです。監査証跡には通常の情報 (ユーザー、時刻/日付、アクション) が含まれ、任意の長さにすることができます。特定の注文の監査証跡を、注文が作成されたときに作成される独自のテーブル (非常に長くなる可能性があるため) に保存しますか?
データベース設計のテクニックについてもっと学べる場所はありますか?