【发布时间】:2015-05-02 15:46:53
【问题描述】:
我不完全确定如何表达标题,这就是为什么我很难用谷歌搜索解决方案。
我已经有几年没有做 SQL 建模和设计了,最近又开始涉足了。
我的问题是这样的:
我有一个唯一的 ProjectID 列表。
有些项目对其他项目有“墙”,这意味着来自一个项目的人对另一个项目一无所知。我想通过隐藏列来在报告中实现此逻辑,如果此人是一个项目的成员,其中一个“WallFlags”针对它。
验证此人所属的项目已解决。
关系是零还是多,
我想要什么:
我想要一种永久的、可扩展的方式来存储这些信息。 我正计划构建一个存储项目 id 的表,但我无法概念化如何记录一个项目与多个其他项目存在冲突的情况...
另外,如果有人知道有助于设计的资源,我将不胜感激,这样我就可以开始工作了
【问题讨论】:
-
我的第一个 SWAG 将是您需要
Projects、People、PeopleProjects的表来将人员分配给零个或多个项目,并需要ProjectWalls来识别由分隔的项目对虚拟护城河。我可能会继续添加触发器,以确保您不能将一个人分配给两个彼此相隔多远的项目,并处理可能分裂一个人的项目墙的更改。可以写TVF返回,比如PersonId的所有项目不禁止查看。
标签: tsql architecture relational-database ssms entity-relationship