我正在开发一个基于 mysql 的系统来管理来自食品加工的数据。此时我遇到了以下具体问题:
我有一张桌子 A,里面有一些物品:
Farmer Quantity
Farmer A 1000 kg
Farmer B 500 kg
然后我有一个表 B,它是表 A 中数据的 m:n 聚合:
Batch Quantity Quality etc.
LI1 200 kg ....
LI2 12000 kg ....
为了表示 m:n 关系,我有一个连接两者的表 AB:
FK_Farmer FK_Batch
FarmerA LI1
FarmerB LI1
FarmerA LI2
现在的问题是:表 B 中的某些批次实际上是由其他批次组成的……这意味着它们是递归组成的。我很想知道在数据库设计方面实现这种情况的最佳方法是什么。
我应该在表 AB 中包含一个额外的外键来引用批次表吗?我是否不应该强制执行外键并通过同一列同时引用农民和批处理表(并添加一个标志以指示递归或其他内容)?还有其他我忽略的明显解决方案吗?
能够通过直接 MySQL 对所有数据进行深入查询会很好,但不是必须的。