私は医者のオフィスと薬局のデータベースモデルを設計しており、顧客はの顧客との患者に関するデータを保存するよう頼んでいます。顧客は薬局で購入した患者であり、同じ時間に、そして逆に患者になる。この状況をどう管理するか?私がそれぞれのエンティティに対して1つのエンティティを作成すると、ある人が両方のテーブルにいる可能性があります。助言がありますか?MySQLで共通の属性を持つ2つのエンティティを実装する方法は?
2
A
答えて
2
二つの方法:
一つのテーブルと呼ばれる人のテーブルには、ファイル「is_customer」と本当のことができ「is_patient」/偽
3つのテーブルのすべてを保存する人々のための1つを持っていますユニークなIDを持つ関連データ(名前、住所、電話番号など)、ユニークなIDのテーブルと人物テーブルへの参照である患者のための1つのテーブル、およびユニークなIDの単なるテーブルである顧客のための1つのテーブルおよびpeopleテーブルへの参照。顧客と患者のためのデータがまったく同じである場合
2
は、あなたが個人情報を持つ単一のテーブルやビットまたは整数かもしれないいずれかtype
列を持つことができます。このtype
列は、レコードが患者か顧客かを示します。患者が顧客でもある場合の繰り返し記録は見当たりませんが、このような状況を回避したい場合は、リンクテーブルを作成する必要があります。以下のような何か:
person
(id, name, address, ...)
そして
person_type(person_id, type_id)
顧客と患者の両方だ人が、このテーブル内の2つのエントリを持つことになります。 type
(顧客/患者)ごとに1つ
関連する問題
- 1. 共通の属性に2つのActiveRecordアソシエーションを結合する
- 2. Cassandra(NoSQL)とmysql(RDBMS)の共通エンティティを持つことは可能ですか
- 3. 汎用リレーションを持つ多相JPAエンティティの実装方法
- 4. スパース共通機能を持つサブクラスの実装
- 5. 属性を持つ交差点エンティティに関するDTOの設計方法
- 6. インタフェース属性を持つJPAエンティティは可能ですか?
- 7. 共通テーブル式で2つのデータフィールドをグループ化する方法
- 8. は、エンティティの属性が別のエンティティと関係を持つことができ
- 9. 2つのベクトルから共通エンティティを削除しますか?
- 10. 1つのコラムを共通に持つ2つのデータセットをマージする
- 11. 2つのデータセットの共通列のみをバインドする方法
- 12. プロセス間のファイルハンドル属性を持つオブジェクトを共有する
- 13. Riot.js 2:falsy値を持つ属性
- 14. 2つのテーブルのデータを持つエンティティ
- 15. データベース、データアクセス、ビジネスレイヤデザイン共通のエンティティを持つ場合
- 16. PHPを通じてmysqlの持つ2つのテーブルを比較
- 17. 次のケースでカスタムAuthorize属性を実装する方法は?
- 18. 2つの送信ボタンと2つの「ターゲット」属性を持つHTMLフォーム
- 19. jQueryで2つの属性を含める方法
- 20. JPA CriteriaBuilderは、コレクションに特定の属性を持つ要素を持つエンティティを見つけます。
- 21. 2つのリンクリストの間で共通の値を確認する方法は?
- 22. Symfony2:2つのid属性を持つフォーム要素
- 23. 共通のプロパティを持つ2つのオブジェクトを検索/マージする
- 24. LINQリストとしての属性を持つエンティティ
- 25. 検索フィルタの複数の共通フィールドを持つ2つのテーブルを結合する方法
- 26. FileReaderの非同期性を持つプログレスバーとコールバックを実装する方法
- 27. ユーザー定義の等価性を持つセットを実装する方法
- 28. 同じ属性(型、番号、..)で異なる名前を持つ2つのクラスをキャストする方法
- 29. 1つのサービス(Bluetooth接続)を共有する2つのアクティビティを最適に実装する方法
- 30. 共通エンティティ(コメント)をICollectionとして持つ複数のエンティティ(Post&Product)
オプション1ですが、インジケータ列が必要であることはわかりません。これらの値は、関連するテーブルの 'person_id'/etcの存在に基づいて作成できます。 –
ええ、それはオプション2のことです。関連するテーブルの作成は最初のものを参照します:)。 – Whetstone