SB2*_*055 10 c# asp.net asp.net-mvc database-design database-schema
我正在设计我的MVC应用程序的用户设置,现在我有~20个布尔设置,用户可以切换.由于每个用户总是会进行所有设置,因此我考虑将每个设置存储为User表中的布尔值.虽然随着应用程序需求的增长,这将变得难以处理.
第一个问题 - 在这种情况下,你的桌子上有大量的柱子有什么问题吗?
然后我考虑使用Flags,并将设置存储为数组中的每一位:
[Flags]
public enum Settings
{
WantsEmail = 1,
WantsNotifications = 2,
SharesProfile = 4,
EatsLasagna = 8
}
Run Code Online (Sandbox Code Playgroud)
然后每个用户在其用户行中将有一个"设置"列,如果有20个设置,则存储值为2 ^ 20.
我用这个来指导我的努力:[Flags] Enum属性在C#中意味着什么?
这比前一种做法好吗?欢迎任何建议.
Bra*_*vic 15
这取决于从数据管理角度来看应该被视为原子的东西.
请注意,某些DBMS(例如MS SQL Server)在存储布尔值时非常有效(在理想情况下,每个布尔字段只有一位).即使那些不完美的那些通常也不会花费超过一个字节的每个布尔值(甲骨文,我正在看着你),这可能只会在你拥有数百万或数十亿用户时成为一个问题.
归档时间: |
|
查看次数: |
1026 次 |
最近记录: |