我目前正在处理一个表,该表很可能仅包含将与用户类型相关联的布尔列(例如isAdmin
,isThisRole
,hasThisPrivilege
等)。表,我想知道这种表模式是否有特定名称?
答案 0 :(得分:3)
我从没听说过那种桌子的具体名称。
我能想到的最接近的是 properties ,但是属性通常包括其他标量,而不仅仅是布尔值。
我将其称为属性表,其中所有属性恰好都是布尔值。
答案 1 :(得分:0)
我觉得如何引用此表并不重要,因为这种类型的表会在以后给您带来麻烦:每次您需要添加新的用户属性时,您将拥有创建一个新列,该列可能很快导致性能方面的噩梦(您的表将占用大量空间),查询(您需要再次检查哪个列?)和维护。
您可能要考虑使用实体-属性-值方法(例如,拥有一个RolesAndPriveleges
表,并拥有一个中间表(UserRoles
),该表同时具有用户和角色的外键/ privelege。这样,您不必执行DDL语句即可添加新角色/特权。
有关更多信息,请参见https://sqlblog.org/2009/11/19/what-is-so-bad-about-eav-anyway。