2009-12-02 139 views
0

我想让我的用户指定他们想要联系哪些小时/天,我虽然创建了固定的时间表,并让用户指定他有空的时间。固定时间表数据库设计

我在计算如何将该信息存储在数据库中时遇到了一些麻烦,任何人都可以帮助我为这种情况设计好桌子吗?

+0

你真的需要小时级别的分辨率是多少?不知道更多关于你确切的问题,我会试图有一个“首选联系时间”字段与几个简单的选择,如“早上”“下午”或“晚上” – 2009-12-02 23:56:06

+0

@Ken:这也可能是一种选择,我会考虑到这一点。感谢您的输入。 =) – 2009-12-03 13:50:37

+0

@Ken:我刚刚意识到我需要提供日期级别的解决方案,用户可能希望在早上除外,例如周末联系。 – 2009-12-03 13:51:49

回答

1
  • Day表中包含天(Sun,Mon,Tue ..)列表,您也可以使用枚举字段。
  • Period表格包含可用(小时)时段的列表,或者您也可以使用一天中的部分时段。

contacttime_model_01

+1

冗余正常化... – 2009-12-03 16:47:18

+1

感谢您的赞扬@Vainstah;如果您看到“冗余标准化”,我会看到预先加载的查找表。如果需要在解决方案(请参阅下文)中解决“重叠”和重复条目“与应用程序逻辑”的问题,我会发现一个不应该存在的问题。 – 2009-12-03 17:44:52

+0

没有什么个人的,但我们的模型都捕获相同的语义。您刚刚创建了一个over-the-top数据模型。为了使这些表格有用,我需要查询日期 - 联系人和期间。这是数据建模的学术观点,而不是实际的观点。您的溶剂也需要 - 相同的逻辑来防止重叠。 – 2009-12-08 12:45:48

1

我假定日期不涉及。如果涉及日期,则删除日期并将时间类型更改为日期时间类型。

所以,你需要的是这个样子·

为person_id条目 - 天(INT 0-7) - time_low - time_high。

这就是所有你需要表示的数据。可用性由time_low和time_high之间的范围表示。

您将需要应用程序逻辑来合并重叠并解决重叠。它不应该太难。