私は医者のオフィスと薬局のデータベースモデルを設計しており、顧客はの顧客との患者に関するデータを保存するよう頼んでいます。顧客は薬局で購入した患者であり、同じ時間に、そして逆に患者になる。この状況をどう管理するか?私がそれぞれのエンティティに対して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つのpython-listsで共通の属性を持つオブジェクトを見つけるのに効率的な方法
- 2. railsは共通の属性を持つタプルを返します
- 3. 共通の属性を持つSQLテーブルについて
- 4. 共通の属性に2つのActiveRecordアソシエーションを結合する
- 5. mysqlの1つの属性を持つ2つの異なるテーブルを参照する方法は?
- 6. 2つの異なる活動で共通のボタンを持つ方法は?
- 7. Cassandra(NoSQL)とmysql(RDBMS)の共通エンティティを持つことは可能ですか
- 8. 2つのエンティティを持つアドレステーブルを共有する
- 9. 汎用リレーションを持つ多相JPAエンティティの実装方法
- 10. スパース共通機能を持つサブクラスの実装
- 11. 非共有属性を持つPoU
- 12. 2つのエンティティを持つアドレステーブルを共有するのは良い方法ですか?
- 13. 属性を持つ交差点エンティティに関するDTOの設計方法
- 14. 2つの共通の列を持つ2つのテーブルに結合する
- 15. Typescript 2種類の共通プロパティを持つ型を作成する方法は?
- 16. インタフェース属性を持つJPAエンティティは可能ですか?
- 17. は、エンティティの属性が別のエンティティと関係を持つことができ
- 18. コアデータは、私は次の属性を持つエンティティの "人" を持っている
- 19. 共有エンティティを持つBaseDbContext
- 20. 共通テーブル式で2つのデータフィールドをグループ化する方法
- 21. 2つのベクトルから共通エンティティを削除しますか?
- 22. 属性を持つxsd:complexTypeのコンテンツを制限する方法は?
- 23. プロセス間のファイルハンドル属性を持つオブジェクトを共有する
- 24. 共通インタフェースを実装するエンティティのDoctrineリポジトリ
- 25. CakePHP 3:HABTMの2つのレベルを持つエンティティを保存する方法は?
- 26. 2つのデータセットの共通列のみをバインドする方法
- 27. エンティティからリンクされた属性を持つSymfonyフォーム入力にクラス属性を設定する方法
- 28. 1つのコラムを共通に持つ2つのデータセットをマージする
- 29. Yii 2のUpdateアクションで、必要なファイルアップロード属性を実装する方法は?
- 30. データベース、データアクセス、ビジネスレイヤデザイン共通のエンティティを持つ場合
オプション1ですが、インジケータ列が必要であることはわかりません。これらの値は、関連するテーブルの 'person_id'/etcの存在に基づいて作成できます。 –
ええ、それはオプション2のことです。関連するテーブルの作成は最初のものを参照します:)。 – Whetstone