我正在尝试为用户可用性应用程序创建数据库实体模型结构。我有一些用户会在一周中的每一天的AM / PM或EVE(晚上)提前两周提供他们的可用性,我不确定我应该如何将其表示为数据库表。
我的问题是:我应该如何创建实体模型?我很难看到我如何创造这一点,而不必每年每周为每周建造52张桌子。我错过了一些非常重要/简单的东西吗?
非常感谢任何帮助
答案 0 :(得分:1)
这样的事情:
create table UserAvailability (
Id int Identity(1, 1) not null, -- primary key
UserId int not null, -- FK to User table
AvailabilityDay Date not null, -- Day of availability
StartTime DateTime not null,
EndTime DateTime not null
)
除非每个用户每天有多个可用时段,否则它在UserInt + AvailabilityDay中也会有一个唯一键。
干杯 -
修改
追加数据后:
create table UserAvailability (
Id int Identity(1, 1) not null, -- primary key
UserId int not null, -- FK to User table
AvailabilityDay Date not null, -- Day of availability
Morning bit not null default(0),
Afternoon bit not null default(0),
Evening bit not null default(0)
)
请注意,这实际上是第二种正常形式,而不是第三种形式。报告要求(以及数据库的其余部分)决定了它是否真的应该排在第三位。