0
我需要設計一個表來存儲每週出勤關係數據庫設計用於存儲每週出勤
形式的格式是:
今天的日期, 附註(如缺席的每一天) 星期一開始y/N 週二Y/N 週三Y/N 週四Y/N 週五Y/N
如何設計表來存儲它被記錄在每週的基礎這些信息呢?
是否應該是1個表格,其列爲 日期,星期一(位),星期一注(varchar),星期二,星期二等注意到星期五?
什麼是最好的方法? TIA
我需要設計一個表來存儲每週出勤關係數據庫設計用於存儲每週出勤
形式的格式是:
今天的日期, 附註(如缺席的每一天) 星期一開始y/N 週二Y/N 週三Y/N 週四Y/N 週五Y/N
如何設計表來存儲它被記錄在每週的基礎這些信息呢?
是否應該是1個表格,其列爲 日期,星期一(位),星期一注(varchar),星期二,星期二等注意到星期五?
什麼是最好的方法? TIA
而不是存儲一週中的每一天的位,爲什麼不把實際的日期與國旗和筆記存儲?事情是這樣的:
CREATE TABLE Attendance(AttendanceID int primary key not null identity(1,1), StudentId int not null /* foreign key? */, AttendanceDate date not null, PresenceFlag tinyint not null default(1), Note varchar(max) null);
因此,而不是使用一個單一的日期和五個旗的日子裏,這將你的邏輯得到實際的日期複雜,存儲一週的每一天的實際日期。這將簡化很多查詢邏輯。
請注意,我正在使用tinyint而不是位。這是爲了讓你執行算術運算。 SUM(PresenceFlag)會給你一段時間的出席人數。你不能用位數據類型來做到這一點。您可以使用CONSTRAINT來確保只允許1和0。
使用DATENAME(Weekday,AttendanceDate),您可以輕鬆地從一個日期中獲得一週中的某一天。