-
データベース設計の考え方は、各データ要素を分離しておくことです。また、各要素には独自のデータ型、制約、およびルールがあります。その
c0002
1つのフィールドではなく、2つのフィールドです。XXXnnn
と同じ または何でも。これは正しくないため、データを使用したり、データベースの機能や機能を使用したりする能力が大幅に制限されます。2つの個別のデータ項目に分割します:
column_1 CHAR(1)
column_2 INTEGER次に、
column_2
にAUTOINCREMENTを設定しますはい、主キーは
(column_1, column_2)
にすることができます 、したがって、c0002
の意味を失うことはありません。 -
サプライヤーと顧客(「c」と「s」が意味するものは何でも)を同じテーブルに配置しないでください。これを行うと、データベーステーブルがなくなり、フラットファイルが作成されます。そして、それに起因するさまざまな問題と制限。
つまり、データを正規化します。最終的には次のようになります:
-
Person
用の1つのテーブル またはOrganisation
共通データ(Name, Address
)を含む ...) Customer
用の1つのテーブル 顧客固有のデータを含む(CreditLimit
...)Supplier
用の1つのテーブル サプライヤー固有のデータを含む(PaymentTerms
...)- あいまいな列やオプションの列がないため、Nullはありません
- 使用またはSQL関数に制限はありません
。
また、列を追加する必要がある場合は、フラットファイルの他のすべての問題に影響を与えることなく、必要な場所でのみ追加します。効果の範囲は変更の範囲に限定されます。
-