我正在使用基於mysql的系統來管理食品加工過程中的數據。 此時我橫跨以下具體問題就來了:以m:n關係引用這兩個表的數據
我有一些項的表A中:
Farmer Quantity
Farmer A 1000 kg
Farmer B 500 kg
然後我有一個表B,其是一個m:從表A中的數據的n個agregation :
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對所有數據進行深入查詢會很好,但不是必需的。
我假設的批次有某種形式的層次結構,至少沒有循環,所以父母不能成爲自己的後代?批次也是分裂的,所以它們是不止一批的後代? – Orbling 2010-12-06 14:31:56