哪种数据库设计对SaaS产品最有效,为什么?
Design1:三个表(设计角色权限表的标准方法)
ROLE
Id
Name
Description
PERMISSION
Id
Name
ROLEPERMISSION
Id
RoleId
PermissionId
Design2:两张表
ROLE
Id
Name
Description
PermissionSetData
PERMISSION
Id
Name
其中role.permissionsetdata列包含存储在角色记录中的权限集的CVS。 (保存数据库存储空间,可能对性能有帮助吗?)
答案 0 :(得分:0)
解决方案1是唯一合适的设计。
我认为,保存数据库存储空间几乎总是一个有争议的问题。当您以合理的价格购买 TERA 字节的空间时,为什么要尝试保存一些 kilo 字节? (每个解决方案所需的空间大致相同)。
第二种设计中的多值列不遵循proper database design。
从实际的角度来看,在多值列中检索数据比在正确设计的数据库中更复杂和昂贵。例如,您无法正确索引CSV列,也无法轻松加入。