【问题标题】:Database design for a wedding photography booking system website某婚纱摄影预约系统网站的数据库设计
【发布时间】:2016-08-13 12:31:08
【问题描述】:

我真的被困在实现这个数据库的最佳方法上。

这是我的问题:数据库是存储婚纱摄影客户的信息。

  • 用户可以在我的网站上注册,输入他们的婚礼详情并获得他们自己的“婚礼资料页面”。他们可以做到这一点,而不必让我们为他们的婚礼拍摄。

  • 用户可以随时预订聚会、婚礼或订婚照。该网站将检查我们是否有空。 (婚礼优先于聚会,因此想要在我们聚会的那一天预订婚礼的客户,聚会将被标记为重新安排)

  • 我们还必须能够预订休息日。这几天不能预订婚礼/聚会/订婚照。

  • 订婚拍摄成本和预付费用。对于婚礼,押金应在 14 天内到期,否则日期将再次被释放。聚会是免费的。

我很纠结如何实施这个系统。我只是不停地转圈,我能想到的最好方法是有一个“日期”表,它链接所有其他表,但我确信这不是最有效的方法。

我认为让我失望的是同一天可以举行多场婚礼(对于只想要婚礼资料的人),但每天只能举行一场预订婚礼。

那么我完全错了吗?还是我将所有约会存储在一个表中并使用“约会类型”表。

太困了,希望你能帮帮我!

附:为了便于理解,我遗漏了大部分字段。

【问题讨论】:

    标签: database database-design schema relational-database database-schema


    【解决方案1】:

    从一开始就保持简单。您已经确定了许多应该对应于实体的名词:

    用户 婚礼 ENGAGEMENT_SHOOTS 聚会 不可用 日期 付款

    我建议 WEDDINGS、ENGAGEMENT_SHOOTS、MEETUPS 和 UNAVAILABLE 都是预订类型。你可以:

    用户 预订 - 这有一个日期,也许还有一个状态 BOOKING_TYPE(婚礼、聚会、订婚拍摄、不可用) 付款

    您可能希望将用户购买的与单个婚礼相关的所有物品打包到 TRANSACTION 实体等中,这将允许将单个付款映射到多个预订。当您的一名员工不在时,他们可能会预订假期等类型的预订。

    可能有 2 种类型的用户 - 分配给预订的摄影人员和您的客户。

    基于预订状态,例如。 CONFIRMED、PENDING、COMPLETED 以及您的业务逻辑可以发送付款要求、跟进等的日期。

    创建一个简单的模型并开始添加数据,您很快就会发现差距和问题(如果有的话)。您应该预先准备好测试用例,以确保数据模型支持您的应用程序的所有场景,最好使用一组用例来做到这一点。

    【讨论】:

    • 您好,感谢您的意见,非常感谢。我想过这样做。但是当我尝试设计它时,我遇到了一些问题。主要是,对于婚礼,我需要存储一组不同的数据。例如,婚礼信息将包括地点、宾客名单、住宿推荐、礼物推荐、新人的历史等。所以我猜这必须存储在不同的表中并以某种方式链接?
    • 数据模型可以有效地存储您的数据并使应用程序易于开发和支持。完全有可能假设客户将始终进行一次或多次咨询,一次或多次订婚拍摄以及至少一次婚礼,并将所有信息挂在婚礼上。如果您决定将来要涉足其他类型的业务,这可能会使其变得更加困难。如果婚礼有这么多与它相关的额外数据,那么它没有理由不能拥有自己的实体。
    • 一开始不要想太多,试着把一些东西放在一起。阅读范式并将它们用作指南,而不是法律。考虑一下输入屏幕和报告的外观,看看它们是否可能/易于使用您的结构实现
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多