對於上下文,我爲獸醫診所創建數據庫。使用C#在SQL表中創建「每月時間表/計劃日曆」
我在Microsoft SQL Server Management Studio中2014年關係模式(schema)SQL表如下:ScheduleSlot(slotID用於,室內,日期,開始時間,結束時間,appointment_id,staff_id),我想部分預填。
- appointment_id和staff_id是foeign_keys,可以而且應該爲null這個「空日曆」
- 通風診所的目的僅僅是開放,每週6天,週日關閉。
- 每個可能的約會是半小時。
- 營業時間爲上午8:00至下午5:00。
我想創建一個日記結構,允許您在每一天都定義一個獸醫可能可用的插槽。
例如我想2016年5月,以產生像這樣對於全部26個未週日日:
slotId date startTime endTime room appointment_id staff_id
1 5/2/2016 8:00 8:30 1 null null
2 5/2/2016 8:00 8:30 2 null null
3 5/2/2016 8:00 8:30 3 null null
4 5/2/2016 8:00 8:30 4 null null
5 5/2/2016 8:30 9:00 1 null null
6 5/2/2016 8:30 9:00 2 null null
7 5/2/2016 8:30 9:00 3 null null
8 5/2/2016 8:30 9:00 4 null null
9 5/2/2016 9:00 9:30 1 null null
10 5/2/2016 9:00 9:30 2 null null
11 5/2/2016 9:00 9:30 3 null null
12 5/2/2016 9:30 9:30 4 null null
... ... ... ... ... ... ...
作爲參考應該有每天72(18周的間隔×4室posiblites)插槽,用於任何月份,以及2016年5月份約1872個插槽(72 x 26)。
我的可能的解決方案使用一個,檢查若設爲i%7 == 0,並跳過它的模(循環)? - for循環可以傳遞一個參數作爲第一個日期並工作到月底。
也許是更好的使用'datename'或'datepart'這樣的事件作爲天識別 – MrPixel6
如果你想通過C#創建記錄,你可以檢查DateTime.DayOfWeek屬性。 https://msdn.microsoft.com/en-us/library/system.datetime.dayofweek(v=vs.110).aspx –