我有一个网站,您可以通过下拉框选择时间段 . 下拉框中的项目类似于:
-
早上6点 - 上午10点
-
上午10点 - 下午1点
-
下午1点 - 下午4点
我将它存储在一个包含2列的数据库表中 . ID和说明 . (所以我只是将字符串“6AM - 10AM”存储在varchar字段中)
我现在需要添加一个日期选择器,以便用户可以选择日期和时间段 . 我有一个日期选择器全部接线,然后我意识到我有一个新的要求:
我需要支持一组不同的时间段,具体取决于当天 . 例如,如果是星期五,它可能是:
-
早上6点 - 上午10点
-
上午10点 - 下午1点
-
下午1点 - 下午4点
但如果是星期六,可能是:
-
6AM - 8AM
-
8AM - 12PM
-
下午1点 - 下午2点
我想弄清楚我需要哪些新表来存储这些信息 . 我最初的想法是 .
-
不要创建任何新表,但是简单添加一个名为DayOfWeek的额外字段,当我需要加载我的下拉列表时,我会根据当前的当天查询并且只是选择时段
-
创建新表以尝试使用时间段加入星期几以使其更加规范化 .
我想看看人们是否有关于存储这些信息的理想数据库表设计的反馈 .
1 回答
Option 1
让我们说你有这种结构
即使有两种类型,SQL看起来也很混乱
Option 2
如果它看起来像这样
然后sql更直接
How do we deal with new requirements
我们如何添加另一个变体:假期
你想要
要么
请注意,在第一个解决方案中,每次获得新的小时策略时,您必须更新数据结构的sql和调用代码,但在第二个解决方案中,您不需要?
继续第二个解决方案 .