m4N*_*4Nu 6 sql database sql-server asp.net-mvc-3
我必须为学校做一个小项目.在数据库表中存储星期几的最佳可能性是什么?
例如,数据备份的星期几 - 我应该使用这样的列:
backupDays varchar(50)
1,5 >> monday + friday
2,3,4 >>tuesday + wednesday + thursday
Run Code Online (Sandbox Code Playgroud)
我必须在我的asp.net MVC程序中使用此表,并使用MSSQL数据库.
在这种情况下(在一个字段中有7个布尔值),我们得到的二进制集只有7位长.因此,您可以在MS SQL中使用一个字节长度的字段类型 - tinyint.并使用 按位运算符来操作它.
例如(二进制):
00000001 -Sunday
00000011 - 周一和周日
00000101 - 周二和周日
00000111 - Monday,Tuesday and Sunday
Here you can find details and examples:
http://sqlfool.com/2009/02/bitwise-operations/
在我看来,在字段中存储一周中的某一天的最佳方法是将其存储为数字 (0..6)。但似乎您想在一个字段中存储超过一天的时间。显然,您不能在单个字段中存储多个值。您需要使用单独的表:
create table Course
(
CourseId int not null primary key,
Name nvarchar(100) not null
);
create table CourseDayOfWeek
(
CourseDayOfWeek int not null primary key,
CourseId int not null references Course (CourseId),
Day int not null
);
Run Code Online (Sandbox Code Playgroud)
但如果您确实需要在单个字段中存储多个值(您无力创建新表),则可以使用 xml 字段或字符串字段。然后你需要手动解析该字段。