私は、エンティティテーブルを持っている:私は、エンティティの名前のテーブルを作成しようとしています抽象JavaのスーパークラスオブジェクトのようにSQLテーブルを設計するには?
entityId indexType (String)
1 employee
2 supplier
。
nameId fk_name_entityId firstName lastName
1 2 johnny appleseed
私はこのデザインを持っている問題や欠陥は、サプライヤーや商用のものとしてではない、いくつかのエンティティタイプはfirstNamesとlastNamesを持っていけないということです。彼らのビジネス名は1つだけです。
私は、このmySQLデータベースをJavaアプリケーションで使用しています。だから私は抽象スーパークラスを作成することができます。
空の列がたくさんあるので、私はそれが悪いデザインのように感じるので、businessName列を追加したくありません。
-- bad design --
nameId fk_name_entityId firstName lastName businessName
1 2 johnny appleseed
2 8 Apple
私の質問は: これを行うにはMySQLを使用して最善の方法は何ですか?
hmm姓の別の単語はタイトルですか?なぜ名前をつけて名前を空欄にしておきたいのですか(または名前と姓を使用して後者を空白にしてください) – inarilo
@inariloそれらは個々の例のようです。企業や人に特有の列が他にもたくさんあるかもしれません。 – Barmar
[各製品に多くのパラメータがある多くの種類の製品の製品表を設計する方法](https://stackoverflow.com/questions/695752/how-to-design-a-product-table-for-多くの種類の製品 - それぞれの製品が-m/695860#695860)。 –