昨日、あるプロジェクトに取り組んでいるときに、奇妙な 1 対 1 の関係を思いついたので、これをどのように実装するのが最善か (明らかに、私たちは間違っていました :D)
A と B の 2 種類のエンティティが存在するという考え方です。これらはそれぞれ独立して存在することもできますが、それらの間にリンクを持つこともできます。リンクがある場合、それは 1:1 リンクであり、双方向で機能する必要があります。
ボトルとキャップのようなものです。それらは別々に存在できますが、一緒に結合すると、ボトルのキャップは 1 つだけになり、キャップは 1 つの (同じ) ボトルだけに取り付けられます。
正規化、データの整合性などに関するすべてのベスト プラクティスを念頭に置きながら、この関係をどのように実装しますか?
追加:言い忘れていましたが、それぞれに十数個のプロパティがあるため、フィールドの半分が NULL の同じテーブルにそれらを配置するのは、かなり厄介な解決策です。また、リンクはいつでも切断され、別のエンティティで再作成される可能性があります。