MYSQL:创建一个整数列表(ID),它可以为每个整数元素使用外键约束?

时间:2010-12-15 08:33:08

标签: mysql list

我想知道是否有办法为整数列表创建一个外键,以响应列表中的单个整数元素。

例如,我有一个“练习”表。在该表上,我想维护两个相关的列: “exercisesID” “relatedExerciseIDs”

但是,“relatedExerciseIDs”是包含逗号分隔的“exerciseID”的VARCHAR。从表中删除练习后,任何在“relatedExerciseIDs”列表中删除了“exerciseID”的练习都应将其删除。

这可能吗?我怎么能这样做?

感谢您的意见!我也有兴趣使用除VARCHAR之外的列类型(如果显示为possible =)

2 个答案:

答案 0 :(得分:1)

所有列值都应该是原子的。

您不应该在单个值中列出任何要查询的内容。

将练习与其他练习联系起来的方法是使用第二张表。它将有两列,每列包含一个练习ID,其中两列都是练习表的外来参考。

答案 1 :(得分:0)

唯一的方法是通过存储过程或您选择的语言。删除记录后,您必须执行LIKE查询以查找分隔字段中具有值的任何记录。这真的不是最好的做事方式,因为你不能按照你需要的方式索引那个领域,所以会很慢。

你绝对最好的选择是创建另一个表来定义练习之间的关系,只使用两个练习id字段(exercise_id,related_exercise_id)。

您应该阅读Database Normalization