1
2
我建议您添加一个“last\u update”时间戳和一个“last\u updated\u by\u user”列,这样您就有希望在运行系统中跟踪此表的更改。
注意“需要快速扩展”。如果没有实际的生产经验,很难猜测扩展后的系统真正需要什么。 另外,请注意不要使权限系统过于复杂,因为过于复杂的系统将很难验证,因此更容易破解。一个简单的系统要比一个更复杂的系统更容易重构。 您的模式似乎将用户与对象相关联。是否希望主键和唯一索引为(用户id、对象id)?也就是说,您希望每个用户对每个对象都有零个或一个权限条目吗?如果是这样,请使用主键来强制执行,而不是使用您建议的代理权限id键。
第二种选择减少了在创建新子对象时显式授予权限的负担。首选更安全。
我认为第一选择可能更优越。我建议这张桌子的布局:
还可以使用此表布局,并在表中为每个用户授予的每个对象的每个不同权限设置一行。如果您添加更多类型的权限,则此项更容易扩展。
|
Community wiki · SQL语法新手 1 年前 |
KateMak · 是否将多行中的多列与唯一id组合? 1 年前 |
Karuna · SQL中列内的筛选器[重复] 1 年前 |
Irvan Affandy · 为另一个选择选择声明的键 1 年前 |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |