我在绘制 ERD 的地方使用 Mysql 工作台 EER。 表之间有各种关系(可选/强制,非识别/识别) 我使用正向工程来生成底层 SQL。 就关系而言,对于可选关系,它会生成 NULL FK 而在强制性 NOT NULL FK 中就是这样。
我的意思是它不应该也基于关系生成级联删除吗? 也就是说,如果我有一个识别关系,那么当父项被删除时,子项也应该被删除,这样就会产生级联删除
或者,换句话说,ERD 中建模的关系除了从概念上知道您的数据库是如何在纸上建模之外没有实际值(value)? 例如,为标识强制关系生成的 sql 代码应该是什么?
最佳答案
您所指的是关系。在数据库管理术语中 relation是不同的。
你的关系应该作为外键来实现。外键的实用值(value)在于它强制执行参照完整性。级联删除通常不是所需的行为,在 SQL 中,默认的引用完整性操作是不允许删除父表中的行,如果该行在另一个表中被引用。如果你想要级联删除,那么你必须指定它。请注意,在 MySQL 中,只有 InnoDB 数据库引擎支持引用完整性。
关于mysql - 从 ERD 生成 SQL - 如何将关系映射到 SQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29095222/