Database design 工作日和值的数据库表设计
我很想在这里谈谈你的想法。我正在创建一个表,用于存储员工每周的轮班时间 例如:Jon周一上午9:00至晚上9:00工作,周二上午10:00至下午5:00工作,等等 我该如何继续设计这张桌子?我想到了两个选择 (1) 对于每一张唱片,我可以在上午和下午有两行,在周一到周日有专栏Database design 工作日和值的数据库表设计,database-design,Database Design,我很想在这里谈谈你的想法。我正在创建一个表,用于存储员工每周的轮班时间 例如:Jon周一上午9:00至晚上9:00工作,周二上午10:00至下午5:00工作,等等 我该如何继续设计这张桌子?我想到了两个选择 (1) 对于每一张唱片,我可以在上午和下午有两行,在周一到周日有专栏 ID | ParentID | Type | Monday | Tuseday ......Sunday ----------------------------------------------------------
ID | ParentID | Type | Monday | Tuseday ......Sunday
-----------------------------------------------------------------
1 | 1 | AM | 9:00 | 9:00 12:00
2 | 1 | PM | 9:00 | 5:00 02:00
3 | 2 | AM | 10:00 |
4 | 2 | PM | 10:00 |
(2) 我可以将首选项以XML格式保存在一列中
ID | Info
-------------------------------------------------------------------
1 | |Hours|Monday|9:00 AM - 9:00PM|Monday|Tuseday........|Hours
还有更好的主意吗
感谢通常,如果我要设计数据库,我会决定信息是纯粹存储在数据库中以供应用程序使用,还是会针对这些数据编写查询 我发现存储XML数据是存储应用程序将要使用的应用程序数据的好方法 当我知道将有查询写入这些字段时,使用XML会更麻烦,因此我宁愿使用普通的表结构
因此,这将取决于这些数据的用途,如果您打算编写查询,从这些字段创建报告。您必须问问自己:轮班是否总是在一周的同一天发生?轮班有时会每10天重复一次吗…?这些是承包商,因此没有任何形式的gurentee…一周中的每一天都可能不同,或者根本没有不同。这将是每日日程安排,谢谢您的评论。此数据将从网站插入并查询。它后面会有一个入口。我想我对如何存储这种类型的数据有些困惑。我知道一周中的每一天都是连续的。只能是周一到周日。那么我应该在表中创建7列并相应地存储值吗?是的,因为它们是常量,所以可以这样做。对于可伸缩性(在本例中,我可能看不到的用法),您可以垂直而不是水平地创建它。创建一个DayType,它将是表中的外键,但正如您所说的,在您的情况下,它只会是Mon-Sun,所以请保持简单愚蠢的X-)