关于架构设计的建议

时间:2012-10-09 18:51:00

标签: sql schema

我想将位置的开始和结束时间存储到数据库表中。您认为下列哪种表设计更理想?我正在使用MySQL或者也许是PostgreSQL(重要吗?)。

每天一张唱片? (返回1-7结果)

id, location_id, weekday, start_time, closing_time

或每个位置一个记录? (总是返回1个结果)

id, location_id, mon_start, mon_end, tue_start, tue_end, ... ... ... sun_start, sun_end

最常见的查询只是显示这样的内容(总是整周):

Location: blablabla
Operating Hours:
    Monday: 8 AM to 8 PM
    ... ...
    Sunday: 8 AM to 12 PM

2 个答案:

答案 0 :(得分:3)

第一种解决方案显然是正确的。第二个没有规范化,更难以编程,也不可扩展(假期,特殊时间等)。

答案 1 :(得分:0)

绝对是第一个,它更好地规范化,您可以使用日期的查找表以及可能的视图轻松生成第二种格式的数据。

正如第一张海报所述,第一个解决方案很容易扩展到包括假期等。第二个解决方案不太灵活。