我正在设计一个数据库(集成到Visual Studio Community 2017中的sql server)并遇到了这个问题。 我有桌子:
Movie
------------
PK MovId,
Title
TorrentMovie
------------
PK TorId,
FK MovId,
TorTitle
User
------------
PK UserId,
Username
UserSpecificTor1
------------
FK UserId,
FK TorId,
Visibility int
UserSpecificTor2
------------
FK UserId,
FK TorId,
NotInteresting bit,
Wrong bit,
Seen bit
可见性可能具有以下值:
0x00 Neutral,
0x01 Not interesting,
0x02 Wrong,
0x03 Not interesting & Wrong,
0x04 Seen,
0x05 Not interesting & Seen,
0x06 Wrong & Seen
我想知道哪种方法更好用:UserSpecificTor1表或UserSpecificTor2表?更好的是,我的意思是访问数据的速度,查询数据的复杂性和其他优势。
答案 0 :(得分:1)
如果使用type bit
列,SQL Server将自行优化存储。无需将这种复杂性添加到应用程序层。
SQL Server数据库引擎优化了位列的存储。如果表中有8位或更少位列,则列存储为1个字节。如果有9到16位列,则列存储为2个字节,依此类推。