iT邦幫忙

0

ASP.NET MVC 網站

若要做一個預約系統,這個預約系統要分時段

早上8點 ~ 10點 (1個時段)
早上10點 ~ 12點 (1個時段)

下午13點 ~ 15點 (1個時段)
下午15點 ~ 17點 (1個時段)

我個人是把每個時段做一個資料表(這個資料表在同一個資料庫※只是不同資料表)↓

例如:
myDatabase(資料庫) 裡面有↓
time8to10(資料表),
time10to12(資料表),
time13to15(資料表),
time15to17(資料表)

這樣在後期使用上是不是會比較不方便呢?

目前我在一個View上用
@foreach(...)
{
...
}

只能叫出一個資料表(目前還找不到叫出兩個以上資料表)

一般大家如果做一個預約系統,這個時段的紀錄會放在同一個資料表裡面嗎?
還是也會每個時段弄成一個資料表呢?

https://ithelp.ithome.com.tw/upload/images/20210827/20140491oVsxtbZfJe.png
上面是我在某網站看到的↑
是否放在同一個資料表再用條件去判斷調出即可?

先謝謝大家的回答

你下方已解答。不會有人做上方這種表~~至少我沒見過XD
Yaowen iT邦研究生 4 級 ‧ 2021-08-27 15:37:03 檢舉
你應該是時段 要有一個專門的 Table
初學者最大的問題,其實不是「程式」本身,而是.....
不會自己設計資料表,尤其是關連式資料表

如果您的文章標題能改成「想用ASP.NET MVC做會議室預約系統」會更精確,吸引更多人來幫你
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
3
Homura
iT邦高手 1 級 ‧ 2021-08-27 15:17:13

若要做一個預約系統,這個預約系統要分時段
早上8點 ~ 10點 (1個時段)
早上10點 ~ 12點 (1個時段)
下午13點 ~ 15點 (1個時段)
下午15點 ~ 17點 (1個時段)

沒有這樣設計的啦....
正常都是分2張表, 然後在JOIN
是我的話會這樣設計

TimeType

id Name
1 早上8點 ~ 10點
2 早上10點 ~ 12點
3 下午13點 ~ 15點

Order
| id | TimeType | ProductName | Date |
| ---- | ---- |
| 1 | 1 | Test1 | 2021-08-21 |
| 2 | 1 | Test2 | 2021-01-03 |
| 3 | 2 | Test3 | 2021-02-16 |

Select * From Order o
Join TimeType t On o.TimeType = t.id 
Where t.TimeTpye = 1 -- 找出某個時段

請問這樣設計的話是不是資料表就會要有每一天的比數
假設一天有7個時段 假設2021/01/01 * 7
這個資料表就會有

時段:9 日期:2021/01/01
時段:10 日期:2021/01/01
時段:11 日期:2021/01/01
時段:12 日期:2021/01/01
時段:13 日期:2021/01/01
時段:14 日期:2021/01/01
時段:15 日期:2021/01/01
時段:16 日期:2021/01/01

時段:9 日期:2021/01/02
時段:10 日期:2021/01/02
時段:11 日期:2021/01/02
時段:12 日期:2021/01/02
時段:13 日期:2021/01/02
時段:14 日期:2021/01/02
時段:15 日期:2021/01/02
時段:16 日期:2021/01/02

依此類推...

每一天都要提供給會員預約的話 這個設計方式就會是這樣對嗎?

Homura iT邦高手 1 級 ‧ 2021-09-07 10:34:35 檢舉

rong105100313
是啊
如果你想要一次顯示成一筆需要另外語法整合成一筆

0
Hankz
iT邦新手 2 級 ‧ 2021-08-27 15:27:31

建議在一個資料表內
建立兩個欄位
分別為預約日期(date)與預約時間(time)

這樣要找特定日期範圍

SELECT * FROM reservation WHERE order_date BETWEEN '2021-08-01' AND '2021-08-31';

或不限日期、但特定時段都可以方便查詢

SELECT * FROM reservation WHERE order_time BETWEEN '08:00:00' AND '10:00:00';

偷懶用datetime就沒那麼方便了...

這樣做的好處是如果以後要調整區段
比如
早上8點 ~ 9點
早上9點 ~ 10點
早上10點 ~ 11點
早上11點 ~ 12點
......

只要調整語法就好

0
海綿寶寶
iT邦大神 1 級 ‧ 2021-08-27 15:30:24

一般大家如果做一個預約系統,這個時段的紀錄會放在同一個資料表裡面嗎?


「預約主表」只記錄「代碼」(例:1,2,3..)
對應資料(時段)放在「參考檔」(例:時段)

還是也會每個時段弄成一個資料表呢?

不會

0
Yaowen
iT邦研究生 4 級 ‧ 2021-08-27 15:35:19

如果是我我會設計

一對多的概念

預約主檔(orders)
1.ReservNO(預約單號)(key)
2.MemberName(預約姓名)
3.TermDate(使用者預約日期)
4.TermTime(使用者預約時間)
5.MobilPhone(手機號碼)

預約明細(ordersDetail)
1.ReservNO(預約單號)(key)
2.ItemNO(預約項目)(key)
2.CurriculumNo(課程編號)

預約課程檔(curriculum)
1.CurriculumNo(課程編號)(key)
2.ClassDate(課程日期)
3.BeginTime(課程開始時間)
4.EndTime(課程結束時間)

Homura iT邦高手 1 級 ‧ 2021-08-27 15:47:50 檢舉

感覺突然想的太後面了XD

Yaowen iT邦研究生 4 級 ‧ 2021-08-27 15:50:18 檢舉

我先回答他接下來會想問的問題...

連城 iT邦新手 4 級 ‧ 2021-08-29 12:03:52 檢舉

可以請教 如果這種模式的話 最後table 會變成怎樣嗎?
...更新
沒事了 多花三秒鐘看出來怎麼放資料了
謝謝大神

0
小吳
iT邦新手 5 級 ‧ 2021-08-27 17:30:31

我會把時段正規化出來

後期運用sql語法去進行查詢

我要發表回答

立即登入回答