私はデータベースで作業していますが、関係の1つに問題があります。PersonエンティティとAddressエンティティがあり、PersonとAddressの間にOneToMany関係があります。 Addressエンティティを正規化したいので、同じAddressを持つPersonが複数ある場合、データベースには1つのアドレスしかありません。Symfony doctrineデータベースの正規化
人1:{ID:1、名称: "FOO"、ADDRESS_ID:1}
者2:{ID:2、名称: "バー"、ADDRESS_ID:1ここで可視であります}
住所1:{ID:1、通り: "barstreet"、housenumber:123}
私は人2であるため、アドレス1を変更したくない人1用のアドレスを変更したい場合私はこれが起こることを望みます:
人1:{ID:1、名称: "FOO"、ADDRESS_ID:2}
者2:{ID:2、名称: "バー"、ADDRESS_ID:1}
住所1 :{ID:1、通り: "barstreet"、housenumber:123}
住所2:{ID:1、通り: "bazstreet"、housenumber:5}
の最良の方法は何かこの問題を解決するには、事前に感謝します。
同じ住所ですが異なる住宅番号ですか?それとも、それはタイプミスですか? – Cerad
2つの可能性があり、1-nの関係にとどまり、person1のアドレスを変更すると、同じアドレスを持つ他のユーザーのために変更されます。あるいは、あなたの関係を1-1関係に変更してから、すべての人に個別の住所を設定することができます。ちょっと難しいと言われているようにそれをやりたければ、それは本当に効率的なのか分かりません。 –
@ErwanHaquetあなたが最初の例を意味するかどうか実際には、1の代わりに2つのアドレスがあります。それぞれの関係に1つある – nusje2000