从 ERD 生成 SQL - 关系如何映射到 SQL?
Generating SQL from an ERD - how are relations mapped into SQL?
我在绘制 ERD 的地方使用 Mysql workbench EER。
表之间存在各种关系(optional/mandatory,非identifying/identifying)
我使用正向工程生成底层 SQL。
就关系而言,对于可选关系,它会生成 NULL FK
而在强制性的 NOT NULL FK 中就是这样。
我的意思是它不应该也基于关系生成级联删除吗?
即如果我有识别关系,那么当删除父项时,也应该删除子项,因此会生成级联删除
或者,换句话说,ERD 中建模的关系除了从概念上知道您的数据库是如何在纸上建模之外没有实际价值?
例如,为识别强制关系生成的 sql 代码应该是什么?
您指的是关系。在数据库管理术语中,relation 是不同的东西。
你的关系应该作为外键来实现。外键的实用价值在于它强制执行参照完整性。级联删除通常不是所需的行为,在 SQL 中,默认的引用完整性操作是如果行在另一个 table 中被引用,则不允许删除父 table 中的行.如果你想要级联删除,那么你必须指定它。请注意,在 MySQL 中,只有 InnoDB 数据库引擎支持引用完整性。
我在绘制 ERD 的地方使用 Mysql workbench EER。 表之间存在各种关系(optional/mandatory,非identifying/identifying) 我使用正向工程生成底层 SQL。 就关系而言,对于可选关系,它会生成 NULL FK 而在强制性的 NOT NULL FK 中就是这样。
我的意思是它不应该也基于关系生成级联删除吗? 即如果我有识别关系,那么当删除父项时,也应该删除子项,因此会生成级联删除
或者,换句话说,ERD 中建模的关系除了从概念上知道您的数据库是如何在纸上建模之外没有实际价值? 例如,为识别强制关系生成的 sql 代码应该是什么?
您指的是关系。在数据库管理术语中,relation 是不同的东西。
你的关系应该作为外键来实现。外键的实用价值在于它强制执行参照完整性。级联删除通常不是所需的行为,在 SQL 中,默认的引用完整性操作是如果行在另一个 table 中被引用,则不允许删除父 table 中的行.如果你想要级联删除,那么你必须指定它。请注意,在 MySQL 中,只有 InnoDB 数据库引擎支持引用完整性。