我正在为以下场景创建数据库方案:
假设没有高性能环境(无需优化速度),实现此模式的最佳方法是什么?数据库环境可以是MySQL、MSSQL……更多的是关系型数据库的设计。
我自己提出了以下几点:
我最不确定的部分当然是 Applications_Permissions_Roles 表。它是另一个链接表之上的链接表。我以前从未使用或见过这个。另一种方法是用角色和权限之间的链接表替换它,然后使用代码或约束来确保所需的关系......但这对我来说似乎不是一个好的解决方案。如果可能的话,这些事情应该在数据库级别强制执行(并且看起来可能),而不是在代码级别执行。
其次,是否需要 Permissions.Application 和 Applications.Id 之间的链接?我使用它是因为 Roles_Applications 中可能没有任何行(例如,当您刚刚添加了一个新应用程序时),然后无法确定哪些权限属于哪个应用程序。它也是查找权限所属的应用程序的单一参考点。我想这是对的,但它也在数据库设计中绕了一圈。尝试将 ON_DELETE 或 ON_UPDATE 设置为级联时出现 MSSQL 错误。
任何建议,或者这是应该如何完成?顺便说一下,也欢迎任何有关命名约定等的建议(也许作为评论)。
谢谢,
卢克
编辑:更改了标题,希望能更清楚。前一个更全面,但可能过于复杂。