Lir*_*una 9 database-design circular-dependency
想象一下以下数据库:
表'公司'有字段ID,名称和flagship_product_id.表'产品'包含字段id,name和company_id.
公司必须拥有旗舰产品(1:1关系),所有产品都有一家公司(1:N关系).
当使用MyISM等存储引擎时,上述情况应该没有任何问题,但是当使用InnoDB之类的引擎时,在插入新数据时会出现问题.
除了允许初始INSERT的NULL关系外,有什么好的解决方案?
总而言之,A公司必须拥有一个旗舰产品.
你要么必须在flagship_product中允许NULL,要么重新考虑如何模拟这种情况.考虑将flagship_product放在产品上作为布尔字段.然后你没有循环依赖.或者在产品上有一个product_type字段,该字段可能包含FLAGSHIP或NORMAL或OBSOLETE等值.当然你必须强制执行,但在过去我发现它是解决这类问题的一个更清洁的解决方案.
| 归档时间: |
|
| 查看次数: |
2941 次 |
| 最近记录: |