gpt4 book ai didi

sql - 不直接相关的表的完整性约束

转载 作者:行者123 更新时间:2023-12-02 01:55:33 25 4
gpt4 key购买 nike

我是一名 SQL 初学者,我不知道如何为这种情况正确创建完整性约束: enter image description here

该架构描述了一个配送系统 - 每个餐厅都提供一些可以配送给客户的商品(在可见架构之外)。

in_delivery 表出现问题 - 菜单中的项目通过此表注册到交付。在当前情况下,可以将 menu_item 添加到由 restaurant 完成的 delivery,但该餐厅可能不会提供 menu_item!

当插入 in_delivery 时,我需要以某种方式检查 Menu_Item_MenuItem_ID 是否存在于 offers 中,它具有 Restaurant_RestaurantID 等于与表关联的 Delivery 中的 RestaurantID

我不知道我是否可以在这里使用外键,因为表不是“相邻的”..

想到的是在 in_delivery 中有一个 RestaurantID,这将是 RestaurantDelivery 的外键。然后我可以在 offers 中找到它。有没有更好的办法?

谢谢你的帮助

最佳答案

您可以通过以下更改强制执行您的约束:

  1. in_delivery 表中添加 restaurant_id
  2. delivery (delivery_id, restaurant_id) 上添加唯一约束(需要 3.)
  3. 将外键从 in_delivery -> delivery 更改为指向 (delivery_id, restaurant_id)
  4. 将外键从 in_delivery -> menu_item 更改为 in_delivery -> offers

关于sql - 不直接相关的表的完整性约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20286477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com