亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數據庫如何儲存“時間段”才比較合理?

數據庫如何儲存“時間段”才比較合理?

慕容森 2018-07-07 14:22:05
在開發中,有一些場景我們需要將一個時間段的信息存儲到數據庫中,比如說:一個事件有開始時間和結束時間,我們可以在數據庫中用類似 startDate 和 endDate 這樣的兩個字段來儲存。但是如果這個時間段是周期性的或者說是間斷性的。比如說:儲存一個課程的上課時間,這個課程是每周一、每周三、每周五上課這樣的話,數據庫的表結構應該如何設計才比較合理呢?創建7個布爾值類型的字段表示周一到周日?
查看完整描述

3 回答

?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

使用兩張表去設計會有更好的擴展性。
1.課程表,記錄課程的相關介紹
2.排課表,記錄上課開始時間,結束時間等

這樣的時間方便以后新增的需求,比如說統計功能,又或者以后會新增簽到功能。

所以我的意思是…使用一張表專門去記錄時間段,有一個一對多的關系。


查看完整回答
反對 回復 2018-07-15
?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

都是按需求來的呀
就像你說的,如果只有一段時間,就可以開始時間+結束時間,也可以開始時間+持續時長

如果是周期性的多段時間,就可以按周期設置天

那如果要設計一個兼容各種模式的,那可能就會復雜一些
可讀性、空間、速度都是此消彼長的


查看完整回答
反對 回復 2018-07-15
?
月關寶盒

TA貢獻1772條經驗 獲得超5個贊

因為我只看到一這么一個需求,我覺得你可以使用二進制的辦法進行計算。

比如一三五上課,那么存儲的二進制的數據為10101000;

然后每次查詢星期三是否有課:

select * from table where date & 1 << 2;

上面的SQL我沒執行過。僅僅是改寫。

參考:

https://img1.sycdn.imooc.com//5b4b579c0001de8b08000756.jpg

查看完整回答
反對 回復 2018-07-15
  • 3 回答
  • 0 關注
  • 2770 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號