私のプロジェクトの権限システムについて考えていますが、権限システムの構成方法を決定することはできません。要約すると、私は自分の質問を次のように記述します:
共有エンティティ(行)を作成し、権限を適用するか、ユーザーごとに個別のエンティティ(行)コピーを作成する必要がありますか?このデータベース設計または許可/許可の責任は
私の状況:私は、多対多の関係を持っている2つのエンティティ
Company
{
[PK]
Id,
Name,
Contacts,
OwnerUser
},
Contact
{
[PK]
Phone,
ContactPerson
}
を持っています。ユーザーは、作成した(所有する)会社エンティティを変更することができます。
私の問題:異なるユーザーが所有する会社間で連絡先(行)を共有でき、両方のユーザーがContact.ContactPersonを別の値に編集したいとします(たとえば、電話番号がJohn 、それ以外の場合はトムの番号)、この状況は、各企業(したがってユーザ)ごとに個別の連絡先のコピーを作成すると解決できますが、ビジネスルールでは同じ電話番号の連絡先が重複しないようにできます。電話番号のほかに(私のビジネスルールに従って)共有する必要があります。
この状況を解決するにはどうすればよいですか?
この電話番号を持つすべての会社で共有する必要があるプロパティが含まれているため、電話機は一意で共有されています。それ以外の場合、Phoneプロパティが変更された場合(Flagがあると仮定します)、DB内のすべてのPhoneインスタンスを検索し、このフラグプロパティを更新する必要があります。 –
申し訳ありません。その場合は、ContactPersonと電話番号を分ける必要があると言います。別々のエンティティです。ただし、複数の連絡先を1つの電話番号にリンクする外部キーとなるため、連絡先に電話番号が重複しないようにする必要はありません。 – kander