gpt4 book ai didi

database - 如何在复杂的一对多关系中保证数据的完整性?

转载 作者:搜寻专家 更新时间:2023-10-30 20:12:20 26 4
gpt4 key购买 nike

假设我们有 4 个表,如下所述:

Table 1: Element  
element_id [integer] (PK)
element_name [varchar]

Table 2: Element_Property
property_id [integer] (PK)
element_id [integer] (FK to Element.element_id)
data_type [integer]

Table 3: Page_Elements
page_element_id [integer] (PK)
element_type_id [integer] (FK to Element.element_id)
element_name [varchar]

Table 4: Page_Elements_Property_Values
property_value_id [integer] (PK)
page_element_id [integer] (FK to Page_Elements.page_element_id)
property_id [integer] (FK to Element_Property.property_id)
value [varchar]

前两张表是元素及其值的定义表,第三张和第四张表是实例表。

考虑到上述表之间的关系:如何通过设计保证表 4 (Page_Elements_Property_Values) 中的每个属性值都引用表 2 中的属性(Element_Property) 属于表 3 中的元素类型 (Page_Elements)?

我再举个例子来说明:
'TextBox' 是一个元素,'Length' 是'TextBox' 的一个属性。 “高度”是其他元素的属性。“MyTextBox”是“TextBox”类型的页面元素,现在...如何保证在表 4 (Page_Elements_Property_Values) 中我们不会有引用“MyTextBox”的“Height”值?

真正的数据库结构稍微复杂一些,有一些多对多的关系,但是这里的思路足以说明问题了。

感谢任何帮助或指导!

最佳答案

处理这些高阶完整性的唯一好方法是通过触发器或异常报告。如果您可以通过查询来检查问题,那么您几乎可以肯定地将其转化为触发器。

关于database - 如何在复杂的一对多关系中保证数据的完整性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7231857/

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