sql – 数据库:如何区分“一个或多个”和“零或多”关系?

设计工具可以区分“一到零或更多”和“一对一”的关系.我可以想象如何实现“一个零或更多”的关系:

CHILD_TABLE

(pk)chid_id
(fk)parent_id(必需)

PARENT_TABLE

(pk)parent_id

如何实现“一对一”的关系?如何说,父母至少需要一个孩子?或者是“一个或多个”通常实现为“零或多”?

解决方法

通过业务逻辑或至少使用交易来实现1对1或更多的关系.您不能同时插入两个表中;一次插入一张表.因此,您需要插入父级才能插入子级,并且没有内置的方式来使数据库强制执行所需的逻辑.

如果将事务中的两个INSERT语句包装在一起,则保证子插入失败,父插入将被回滚.但是,由业务逻辑来确保没有子进程插入父进程.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...