当前位置: 首页 > 面试题库 >

父母和子女表-确保子女完整

罗烨霖
2023-03-14
问题内容

我正在学习SQL,并具有一些类似于以下内容的表:

Person (id*, name)
Customer(id*, is_active, ...)
Employee(id*, department_id, ...)

(*表示主键,如果是Customer和Employee,则既是PK又是返回给Person的FK)

Customer和Employee都是Person的类型,我想确保在将记录插入Person时,也必须将记录插入EITHER
Customer或Employee,但不能同时插入两者。在此示例的限制范围内,人员不能同时是雇员和客户。

有人告诉我触发器可以用于强制执行此约束。有人可以用这个简单的例子解释一下触发器的用法吗?


问题答案:

根据您的DBMS支持的内容和其他因素,您可以:

  • 通过为确保正确行为而实施的存储过程进行插入。
  • 或在视图上使用触发器(该JOIN联接具有特定子类型的超类型)以使视图“可更新”,然后插入视图中。
  • 或确保亚型都独占性和存在通过纯粹的声明方式。
  • 或使用继承不同的实施策略,从“单独的表中的所有类”)。


 类似资料:
  • 问题内容: 有人可以帮我了解如何配置休眠以执行我想要的事情。 我有一个父实体“公寓”,其中有一个“房间”列表作为子实体。我有一个用于编辑“公寓”的表格,在该表格中,我列出所有子级“房间”只是为了提供信息。房间以单独的形式添加和编辑。 因此,因为我在公寓表格中列出了房间,所以我将lazyloading设置为false: 但是,如果我编辑一个公寓并将其存储,则所有公寓房间都会突然消失。在数据库中,它们

  • 问题内容: 我有一个这样的表: 我想创建一个有序的表单,如下所示: 在数据库中,有很多书,而不仅仅是一本书。 有没有办法以这种方式对查询“ SELECT”进行排序?这只是一个表面问题,不需要做多维数组之类的事情,因为我可以在标签上贴上它们的类型,然后根据类型更改它们的外观。但是我需要以正确的顺序查找查询。 PD:对不起,我的英语:S 问题答案: 不要以为数据库是个好主意。查询将很难。Imo更好-您

  • 问题内容: 有两个SQL表: 我想用单个查询从Parents表中选择每一行,并从Childs表中为具有关系“ parent”-“ id”值和最大“ feature”列值的每一行选择一个查询。在此示例中,结果应为: 其中p =父表,c =子表 我试图离开外部联接和GROUP BY,但是MSSQL Express告诉我,使用GROUP BY进行查询需要在每个非Groupped字段上使用聚合函数。而且我

  • 问题内容: 使用Spring和Hibernate,我可以在自引用类的父级/子级和另一个类之间实现一对多关系。也就是说,这是自引用类: D B: 模型: 现在,我想为父母/孩子(经理/雇员)和另一个这样的类创建一对多的关系: 因此,经理和员工都将与一个或多个课程相关联。课程课程: 这是我要实现的内容的概述,但我想知道这是否可能,如果可以,如何在数据库关系中进行设置,并能够通过hibernate将关系

  • 问题内容: 我有一张桌子 领域的意义: site_Id:网站的ID parent_Id:站点的父ID site_desc:尽管与问题无关,但是具有站点的描述 要求是,如果我有一个site_id作为输入,并且需要该网站下方标记的所有ID。例如: 所有节点都是site_Id。 该表包含如下数据: ...... A是B和C的父代,依此类推。 如果B是给定的输入,则查询需要获取D,E,I,F,J 目前,它

  • 我正在尝试选择树的一个分支,并为每个分支(父级和两个级别的子项)分配一种独特的颜色。在下面的示例图片中,父节点位于右侧,叶节点位于左侧。 我的分层数据有三层(名称:“专业” 但是不能把这些放在一起让它工作。当我绘制路径时,我如何为每个分支分配一种独特的颜色?