可用性工具的数据库实体模型,其中有多个用户在多个星期内多次选择可用性

时间:2014-01-29 13:39:36

标签: database entity-framework database-design entity-relationship

我正在尝试为用户可用性应用程序创建数据库实体模型结构。我有一些用户会在一周中的每一天的AM / PM或EVE(晚上)提前两周提供他们的可用性,我不确定我应该如何将其表示为数据库表。

我的问题是:我应该如何创建实体模型?我很难看到我如何创造这一点,而不必每年每周为每周建造52张桌子。我错过了一些非常重要/简单的东西吗?

非常感谢任何帮助

1 个答案:

答案 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)
)

请注意,这实际上是第二种正常形式,而不是第三种形式。报告要求(以及数据库的其余部分)决定了它是否真的应该排在第三位。

相关问题