如何构造SQL数据模型以维护数据完整性

问题描述 投票:0回答:1

背景

我正在建立私人厨师预订服务,您可以在这里预订厨师来为您定制菜单。我在创建一个可以在保持数据完整性的同时准确表示域的SQL db模式时遇到了麻烦。

要求
  • 客户通过选择BookingChef创建一个Menu,然后为每个MenuItems选择他们想要的MenuCourse

  • Chef定义了一组MenuItem,供客户选择以创建其Booking
  • A MenuMenuCourses的集合。 (例如,名为“品尝菜单”的Menu是6道菜的餐点,每个MenuCourse的价格在$ 10-20之间)。
  • Chef应该能够将其MenuItems与多个MenusMenuCourses关联。
  • [客户Booking应包含选择的客户Chef以及将要提供的Menu(和MenuItems)。 Booking价格由MenuMenuCourse选择决定(开胃菜的价格低于主菜的价格)
  • 问题

    在我当前的数据模型中,我有以下问题,不确定如何解决:

    • 可以用Booking“ A”创建一个Chef,但随后有一个BookingMenuItem引用一个MenuItem“ B”的ChefBookingMenuItem的所有Booking应该属于同一个Chef
    • Booking引用特定的Menu(我需要进行定价,定价基于MenuMenuCourse),但是该BookingMenuItemBooking可以引用完全不同的MenuMenuCourse
    • 是否可以重新设计数据库模式以解决我遇到的完整性问题?还是只需要在应用程序级别实施这些检查。谢谢!

    ERD

    背景我正在建立一个私人厨师预订服务,您可以在这里预订厨师来为您定制菜单。我在创建可以准确表示域的SQL数据库结构时遇到麻烦,而...

    sql database database-design database-schema data-modeling
    1个回答
    0
    投票

    这会使用您模型中的表名,并尽可能紧随其后。我建议将menu_item重命名为通用dish,以避免造成混淆。

    © www.soinside.com 2019 - 2024. All rights reserved.