我必须为学校做一个小项目。在数据库表中存储星期几的最佳可能性是什么?
例如,一周中的几天进行数据备份——我应该使用这样的列:
backupDays varchar(50)
1,5 >> monday + friday
2,3,4 >>tuesday + wednesday + thursday
我必须在我的 asp.net MVC 程序中使用这个表,并且我使用 MSSQL 数据库。
我必须为学校做一个小项目。在数据库表中存储星期几的最佳可能性是什么?
例如,一周中的几天进行数据备份——我应该使用这样的列:
backupDays varchar(50)
1,5 >> monday + friday
2,3,4 >>tuesday + wednesday + thursday
我必须在我的 asp.net MVC 程序中使用这个表,并且我使用 MSSQL 数据库。
在这种情况下(一个字段中有 7 个布尔值),我们得到一个只有 7 位长的二进制集。因此,您可以在 MS SQL- tinyint中使用一种字节长度字段类型。并使用 按位运算符来操作它。
例如(二进制):
00000001 - 星期日
00000011 - 周一和周日
00000101 - 周二和周日
00000111 - 周一、周二和周日
在这里您可以找到详细信息和示例:
在我看来,将一周中的某一天存储在字段中的最佳方法是将其存储为数字 (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
);
但是如果你真的需要在一个字段中存储多个值(你不能创建一个新表),你可以使用 xml 字段或字符串字段。然后您需要手动解析该字段。