資料庫表規範化問題

nana1123發表於2022-04-25

我正在製作一個線上日曆。

一個人將能夠建立en事件,然後可以選擇新增“無限”或“從”到“結束”日期時間。如果您選擇新增“從”到“結束”,您可以選擇每週或每個月的每天都沒有重複或重複。

我想知道創造這些關係的最佳方式是什麼。

這是我現在有我的桌子:

Table: EventsColumns: name, description, date_time (foreign key)Table: Date_timeColumns: from, to, repeat (foreign key)Table: RepeatColumns: mode, days1: "daily", "every 2nd day"2: "weekly", "Monday, Wednesday"3: "monthly", "1st, 12th, 19th"

有了這個,我遇到了一些問題。

在這裡,我必須指定events.date_time,因為它具有外來鍵約束。如何讓使用者選擇未指定任何DateTime,只需將其設定為無限“。

重複也是如此。如果使用者設定了DateTime,我希望能夠設定重複到無的可能性。

有人可以指向正確的方向。

謝謝

看答案

我建議重新考慮模式,我的提案是這樣的:

編輯: 由於事件可能沒有超過一個時期,因此使用更好   和   作為列,如果它們為null,則事件無限有效。

Table: EventsColumns: id, name, description, from (nullable), to (nullable)Table: RepeatColumns: mode, days, event_id (foreign key to Event)1: "daily", "every 2nd day"


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70017124/viewspace-2888679/,如需轉載,請註明出處,否則將追究法律責任。

相關文章