我正在尝试建模一个类别的层次结构,其中一个类别可以有多个父级( 在这本书里描述的重叠树模型)
我有以下表格
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约束以避免这种情况,还是应该在应用程序级别确保它?
非常感谢
发布于 2013-02-11 15:38:29
我将在层次结构中定义级别:
video_categories
int id
int level
string name我会将父级和子级传播到链接表中:
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)https://dba.stackexchange.com/questions/34532
复制相似问题