关闭。这个问题是基于意见的。它目前不接受答案。**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。
两年前关门了。改进这个问题我目前正在处理一个表,它很可能只包含booleans列(比如 isAdmin , isThisRole , hasThisPrivilege 等等)将链接到一个用户类型的表,我想知道这种表模式是否有一个特定的名称?
isAdmin
isThisRole
hasThisPrivilege
9jyewag01#
我觉得如何引用这个表不如这类表会给您带来问题这样重要:每次需要添加新的用户属性时,您都必须创建一个新的列,这会很快导致性能方面的噩梦(您的表将占用大量空间),查询(您需要再次检查哪个栏?)和维护。您可能需要考虑使用实体属性值方法(例如,拥有 RolesAndPriveleges ,并具有中间表( UserRoles )使用用户和角色/特权的外键。这样,您就不必执行ddl语句来添加新的role/privelege。有关详细信息,请参阅https://sqlblog.org/2009/11/19/what-is-so-bad-about-eav-anyway.
RolesAndPriveleges
UserRoles
xbp102n02#
我从来没有听说过这种类型的表的特定名称。我能想到的最接近的东西是属性,但是属性通常包括其他标量,而不仅仅是布尔值。我称之为属性表,其中所有的属性都是布尔值。
2条答案
按热度按时间9jyewag01#
我觉得如何引用这个表不如这类表会给您带来问题这样重要:每次需要添加新的用户属性时,您都必须创建一个新的列,这会很快导致性能方面的噩梦(您的表将占用大量空间),查询(您需要再次检查哪个栏?)和维护。
您可能需要考虑使用实体属性值方法(例如,拥有
RolesAndPriveleges
,并具有中间表(UserRoles
)使用用户和角色/特权的外键。这样,您就不必执行ddl语句来添加新的role/privelege。有关详细信息,请参阅https://sqlblog.org/2009/11/19/what-is-so-bad-about-eav-anyway.
xbp102n02#
我从来没有听说过这种类型的表的特定名称。
我能想到的最接近的东西是属性,但是属性通常包括其他标量,而不仅仅是布尔值。
我称之为属性表,其中所有的属性都是布尔值。