开发者社区 问答 正文

数据库ER模型平日可用性

已解决

在设计数据库及其模型时,我遇到了一个令人讨厌的设计问题。从本质上讲,该数据库吸引了客户和客户,他们应该能够彼此约会。客户应将其可用性(通常按周)存储在数据库中,并且需要将其添加到约会模型中。该解决方案不需要或不需要精确的小时可用性,每天只需一个值-从“不可用”到“可能可用”到“可用”。到目前为止,我想出的唯一解决方案包括为每个客户连续存储所有7天的数据,但是看起来很讨厌。

所以这是到目前为止我得到的一些东西:

Client model: ClientId Service, Fee

Customer-that-uses-Client model: CustomerId ServiceNeed

Availability-model: ClientID (FK/PK) Monday, (int) ... ... Sunday (int)

最后,约会模型:

AppointmentId ClientID CustomerID StartDate Hourse

问题:有什么方法可以重新设计可用性模型,以……好,需要较少的字段,并且仍然根据客户的可用性每天存储(1-3)值?如果约会模型不需要引用可用性模型中的所有数据,那也将非常好...

展开
收起
保持可爱mmm 2019-12-13 10:33:26 359 分享 版权
1 条回答
写回答
取消 提交回答
  • 采纳回答

    标准化该availability表:代替

    ClientID(FK / PK)星期一(int)... ...星期日(int)

    ClientID(PK / FK)工作日整数值(0-6或1-7)(PK)可用性整数值1-3

    该表具有复合主键,(ClientID, weekday)因为每个客户在七个工作日中的每个月可能具有零个或一个条目。

    在此表中,您可能具有以下行:

    43 2 3 (on Tuesdays = 2, client 43 is Available =3) 43 3 2 (on Wednesdays = 3, client 43 is MaybeAvailable =2)

    如果该行丢失,则表示该客户端不可用。可用性值1也意味着。

    问题来源于stack overflow

    2019-12-13 10:33:43
    赞同 展开评论