私はすべてのユーザータイプから派生する既存の個人テーブルを持つデータベースを作成しています。
Individual: FirstName, LastName, Email,
テーブル間で「同一性」を共有する<lots more
>
従業員:他の言葉では、のようなテーブルがあります
お客様をIndividualId:今、私はから派生していないユーザーの新しいタイプ(WeirdPerson)を追加するなど
を
をIndividualId個人。 (WeirdPersonは、どのIndividualよりもそれに関連するデータがかなり少なく、WeirdPersonのためにIndividualのすべてのフィールドをnullにすることは実際には望んでいません)。
テーブルに使用するにはキーフィールドが必要ですWeirdPersonsのエントリと個人のエントリがあります。
MashedupIndividuals: MashedupId, IndividualId
MashedupWeirdPerson: MashedupId, WeirdPersonId
私はMashedupIdが自動生成されたフィールドになりたい:これはそうのようなマップテーブルを示唆しています。私はTSQLを使用しているので、IDは良い選択と思われます。 MashedupIdが2つのテーブルに分割されている点を除いて。
MashedupIds: MashedupId
MashedupIdをIDとして設定し、MashedupIndividualsとMashedupWeirdPersonで外部キーにします。
これを進めるのが最善の方法ですか?これをどうやって解決しますか?
編集:私がWeirdPersonのために持っている唯一の情報は電子メールアドレスです。個人のメールフィールドを引き出し、GlobalPersonIdとEmailだけを使って新しいGlobalPersonテーブルを作成することを考えました。 GlobalPersonテーブル(または私が使用するより良い名前)は、WeirdPersonを全く異なるタイプとして分離するほど自然ではないと感じます。しかし、私はこの立場を再考したい。
私は初めての人や姓の人に会ったことはないと思います。これらの奇妙な人々は正確に何ですか? – jmucchiello
WeirdPersonの不思議な問題に対処するために私の質問を編集しました。私は彼らに詳しい情報を与えることなく逃げることができたと思った。私は明らかに間違っていた。 :) – Eric