mysql - 从 ERD 生成 SQL - 如何将关系映射到 SQL?

标签 mysql database database-design mysql-workbench

我在绘制 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/

相关文章:

mysql - 单个查询中的多个删除

c# - 如何实现离线读写锁

sql - 派生属性是否应该复制为列或每次都进行计算?

Fixture 的 Mysql 存储过程

mysql - 为什么 SO 上的人更喜欢 CASE WHEN 而不是其他选择?

database - 使用 Intermapper 监控 Postgres

database - 我应该存储有关数据库中有多少条记录的信息吗?

database-design - 我应该为多客户端应用程序使用单个还是多个数据库设置?

php - microtime() 和浮点运算

mysql - 使用索引优化查询