我得到的E-R型号不是我设计的。但我无法联系作者。 在这个模型中有些令我困惑的东西。 在表A中,主键是整数字段。表B有一个以A的PK为参考的外键。但是B的这个FK是一个varchar字段。 我刚刚开始学习数据库dedign,从来没有在我的工作中看到或做到这一点。 它是否合理且可实现? 请注意,该模型适用于mysql。
答案 0 :(得分:2)
这不能在InnoDB中实现为FOREIGN KEY约束;外键列的数据类型必须与引用列的数据类型完全匹配。
您可以对列执行连接操作,但是需要在一侧或另一侧进行数据类型转换...例如。
ON c.character_col + 0 = p.numeric_col
允许在SQL中执行此操作;我们不必定义FOREIGN KEY约束来执行连接操作。
这个设计不是我们想要看到的;其中一个重要问题是性能,因为MySQL无法有效利用character_col
上的索引。