Database 如何确保关系数据库中的有向图约束?

Database 如何确保关系数据库中的有向图约束?,database,graph-theory,Database,Graph Theory,我目前正在构建一个代表管网的小型数据库。我将网络划分为多个区域,这些区域相互连接。在图论中,区域是顶点,区域之间的连接是边。我将边存储为一个数据库表,有两个字段:一个用于“上游”或“左侧”区域,另一个用于“下游”或“右侧”区域。我希望我的图形是定向的,例如,对于两个区域,它们之间只能有一个连接 有没有办法在SQL中强制执行此约束,或者我必须检查是否使用存储过程?您可以在2个值中添加一个唯一的索引-假设您有一个表边2列区域a\u ID和区域B\u ID,代码看起来像 创建唯一索引唯一边 在边缘上(

我目前正在构建一个代表管网的小型数据库。我将网络划分为多个区域,这些区域相互连接。在图论中,区域是顶点,区域之间的连接是边。我将边存储为一个数据库表,有两个字段:一个用于“上游”或“左侧”区域,另一个用于“下游”或“右侧”区域。我希望我的图形是定向的,例如,对于两个区域,它们之间只能有一个连接


有没有办法在SQL中强制执行此约束,或者我必须检查是否使用存储过程?

您可以在2个值中添加一个唯一的索引-假设您有一个表边2列区域a\u ID和区域B\u ID,代码看起来像

创建唯一索引唯一边 在边缘上(区域A\U ID、区域B\U ID)

您还可以创建一个约束区域\u a\u ID<区域\u B\u ID以防止重复

检查(区域A\U ID<区域B\U ID)

根据您使用的数据库的不同,这些数据库的语法也会有所不同

见: