Привет, ребята. Мне нужно смоделировать следующую ситуацию. Я предложил 2 возможных варианта, но я хочу знать, есть ли лучшее решение.
Вот сделка ...
Упрощенная схема
User Group
----------- ------------
UserId (PK) GroupId (PK)
Name Name
... ...
\ /
UserGroup
-------------
UserId (FK)
GroupId (FK)
Это просто. Таблица для пользователей, таблица для групп, а затем таблица для привязки пользователей к группе (многие ко многим)
Тогда у меня есть другие сущности (например, статьи), которые могут принадлежать как пользователю, так и группе (могут принадлежать одному пользователю, или принадлежать одной группе, или могут принадлежать пользователю и группе и т. Д.). ).
Так вот в чем дело. Я мог бы сделать:
A
Article ArticleOwnership
-------------- ----------------
ArticleId (PK) <----- ArticleId (FK)
Title UserId (FK-NULLABLE)
... GroupId (FK-NULLABLE)
Дело в том, что когда я хочу проверить, принадлежит ли конкретному пользователю определенная статья, кажется, что я должен проверить обе. Это легко с помощью T-SQL, но я хочу использовать Entity Framework (никогда раньше не использовал ORM, так что будьте хороши xD).
Как бы вы смоделировали эту ситуацию ???
Другой подход может быть:
B
Создайте группу для каждого пользователя, содержащую внутри только этого пользователя, и управляйте владениями только по группам. Как это звучит для вас?
Спасибо всем и извините, если мое объяснение не очень понятно, мой английский не идеален.