我的應用程序需要在多個表之間實現一對一的關係。我有一張儲存公司的表格(可以是客戶和供應商,也可以是兩者都有)。有二比特字段,客戶和供應商。關於數據庫設計的建議 - 涉及關係的多個表
然後我有各種不同的操作表:發票,銀行業務,Cashdesk操作。我需要將付款與發票配對。付款不是確切的發票金額,但它可以分成每個發票數量。此外,發票可以分成多次付款。付款可以來自銀行或cashdesk操作
我原來的做法是有一個表,PaymentRelations,與外鍵InvoiceID,BankOpID,CashOpID和金額,併爲他們之間的任何支付,我創建一個只有兩個記錄國外身份證填寫以及相應金額。通過這種方式,我可以隨時知道每項操作(發票或付款)的付款金額。
另外還有RI要求,所以如果一個文件涉及支付關係,它不能被刪除(或者有級聯刪除,所以如果發票文件的支付被刪除,相關的PaymentRelations記錄被刪除,所以對手操作被釋放 - 它們不再涉及支付關係,因此它們的數量可以充分用於其他支付關係)。
但出現了另一種情況。由於合作伙伴既可以是客戶也可以是供應商,因此可以在同一合作伙伴的客戶和供應商方之間進行相同類型的操作之間進行補償(例如,合作伙伴既是客戶又是供應商,他爲供應商提供了100的發票並收到了發票作爲150的客戶,50在收到和發送的發票之間得到補償,其餘的每個都通過一次或多次付款操作付款)。 這也可能發生在其他操作上(例如,他通過銀行操作100支付,他通過另一銀行操作200收到,並且需要在這兩個操作之間補償50;同樣適用於木桶操作)。
你會用什麼方法來模擬這種關係?
謝謝,但這不是一個選項。該系統正在開發中,它解決了客戶無法找到他人的一些特定要求,他想要一個定製系統 – bzamfir 2011-04-15 20:05:54
@bzamfir:更新了答案。 – 2011-11-05 20:08:19