同じプロパティを含むアプリケーションでは、少なくとも50個のオブジェクト(たとえば、city
、country
、color
、personelType
、organizationType
など)があります。これらのプロパティは含まれていますID
、Topic
、Code
、同じプロパティが含まれ、これらのオブジェクトのisActive
基本情報のスキーマ設計にはどのようなものが最適ですか?
- 、我々は
BaseInfo
とBaseHeader
として知られている2つのオブジェクトを作成します。このオブジェクトの設計テーブルのための - 、我々は1つの
Base-Header
として知られているテーブルとBase-Info
として知られている他のテーブルを作成します。これらのテーブルの関係は次のとおりです。https://pasteboard.co/GQeV4Rl.png
開発者は、必要に応じてBase-Header
に新しいレコードを追加します。例えば、開発者はBase-Header
を見ると、それはcity
用テーブル内のレコードがないならば、都市オブジェクトごとに1件のレコードを追加:insert into Base-Header (id, topic) values (1, 'city');
や色のため:insert into Base-Header (id, topic) values (2, 'color');
を。この後、すべての開発者がBase-Info
に都市レコードでheaderId
フィールドの値が1
、市内の取得データのためのアプリケーションにこのIDをハードコーディングすることができますことを知られています。アプリケーションで同じステータスのオブジェクト。
この計画では、同じプロパティを持つcity
,color
などのテーブルとオブジェクトを作成する必要はありません。市内のレコードを必要とする他のテーブルのすべての外部キーは、彼らはBase-Info
テーブルと添付されています。このテーブルとオブジェクトのデザインは正しいですか?
- このスキーマ[https://pasteboard.co/GQnqaT5.png]があり、これを[https://pasteboard.co/GQnqiCE.png]に変更したとします。この作業では、同じ小道具を持つすべてのオブジェクトとテーブルを削除します。注意。クエリは変更されず、joinまたはwhere句は追加されません。外部キーだけがBase_Infoに変わります。これは複雑ですか?
おかげでたくさん...
現在のスキーマと要件を共有していただけますか?現在私はあなたの問題を理解できません。 –
それは確かに混乱して複雑に聞こえるが、私はそれが私が見ることができるかどうかわからない問題のための非常に良い解決策ではないと言うだろう。 – Kayaman
@ kayamanこのパターンが設計されていて、これを使用しました。このアプローチが正しいのか、オブジェクトごとのテーブルを作成する必要があるのかを理解する必要がありますか? –