大家好,我必须模拟以下情况。我想出了 2 个可能的替代方案,但我想知道是否有更好的解决方案。
这是交易...
简化模式
User Group
----------- ------------
UserId (PK) GroupId (PK)
Name Name
... ...
\ /
UserGroup
-------------
UserId (FK)
GroupId (FK)
这很简单。一个用户表,一个组表,然后是一个将用户与组关联的表(多对多)
然后我有其他实体(即文章)可以由用户和组拥有(可以由一个用户拥有,或者可以由一个组拥有,或者可以由一个用户和一个组拥有,等等)。
所以这是交易。我可以:
一个
Article ArticleOwnership
-------------- ----------------
ArticleId (PK) <----- ArticleId (FK)
Title UserId (FK-NULLABLE)
... GroupId (FK-NULLABLE)
这里的问题是,当我想检查特定用户是否拥有特定文章时,似乎我必须同时检查两者。使用 T-SQL 很容易,但我想使用实体框架(以前从未使用过 ORM,所以请注意 xD)。
你会如何模拟这种情况???
另一种方法可能是:
乙
为每个用户创建一个组,仅包含该用户,并仅按组管理所有权。你觉得这听起来如何?
谢谢大家,很抱歉,如果我的解释不是很清楚,我的英语并不完美。