2010-04-28 61 views
4

我有一組複選框,用戶選擇某些工作日(商店的開放日期)。我怎樣才能保存選定的日子?我應該在相同的字段上保存0111111(零表示星期日關閉)並在讀取數據時分割結果?或者爲每一天創建一個字段並在每個(奇怪)上存儲0或1?如何在數據庫中存儲開放日期

+0

你將如何處理與假期有關的關閉? – 2010-04-28 15:15:04

+0

這不是一個問題。這些商店每年只關閉兩三天(聖誕節,復活節)。我需要儲存開幕日/周和開放時間/天 – JoaoPedro 2010-04-28 15:20:09

回答

7

第一種方法節省空間,第二種方法在檢索數據時提高性能,尤其是在需要按個別工作日過濾時。它也使得操縱平日的查詢更加清晰。您必須根據應用程序的邏輯來決定什麼對您更重要。

一般來說,我會使用現場每日解決方案。

+2

我贊成第二種解決方案 - 第一種方法是,您永遠無法使用索引檢索任何特定日期的商店,但週日(第一個字符),所以它需要一個表掃描。如果它是一張小桌子,沒什麼大不了的,但是效率不高。由於一週內的日子不會改變,所以我會每天花一場。 – SqlRyan 2010-04-28 15:22:11

+0

「檢索除星期日以外任何特定日期開放的商店」。好點子。不適合現場/日期選項。謝謝大家。 – JoaoPedro 2010-04-28 15:28:45

0

這完全取決於你一旦擁有數據就要做什麼。總的來說,如果這七個factoid(商店被關閉的平日)是一個事實,將被視爲一個事實,並且您將永遠不需要解析並單獨處理字符串中的某個「factoids」,然後它可以也可能應該作爲一個數據存儲。但是,如果您必須將此信息視爲七個不同的數據片段,則最好將其記錄爲七個不同的數據片段(即七個不同的列)。

同樣,這背後還有很多「依賴」。另一種考慮的方法是,展望如何使用數據,並嘗試構建存儲以簡化流程(例如,是否希望始終爲所需元素解析字符串「1010101」 ?)

相關問題