首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对称自指多对多

对称自指多对多
EN

Database Administration用户
提问于 2013-02-11 15:05:16
回答 1查看 741关注 0票数 4

我正在尝试建模一个类别的层次结构,其中一个类别可以有多个父级( 在这本书里描述的重叠树模型)

我有以下表格

代码语言:javascript
复制
video_categories
  int     id
  string  name

video_category_links
  int     parent_id  (foreign_key to video_categories.id)
  int     child_id   (foreign_key to video_categories.id)

关于父级_身份证,孩子_id唯一性的一个索引

这个设置的问题是,A可以是B的父级,B可以同时是A的父级

是否有一种方法可以指定db约束以避免这种情况,还是应该在应用程序级别确保它?

非常感谢

EN

回答 1

Database Administration用户

回答已采纳

发布于 2013-02-11 15:38:29

我将在层次结构中定义级别:

代码语言:javascript
复制
video_categories
  int     id
  int level
  string  name

我会将父级和子级传播到链接表中:

代码语言:javascript
复制
video_category_links
  int     parent_id  
  int parent_level ((parent_id  , parent_level) foreign_key to video_categories(id, level))
  int     child_id   
  int child_level((child_id  , child_level) foreign_key to video_categories(id, level))
  check(child_level > parent_level)
票数 4
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/34532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档