2016-12-30 50 views
0

我有一個發票管理系統。它有報價,銷售訂單,採購訂單從多個地方處理數據庫模型生成的發票

用戶必須從多個地方

當它被批准
  • 銷售訂單時,它被客戶所接受
    1. 報價生成發票選項
    2. 採購訂單直接可以轉換爲發票

    我有一個表,有子表這樣的

    1. 報價,報價的項目
    2. 銷售訂單,銷售訂單項目
    3. 採購訂單,採購訂單項目
    4. 發票,發票項目

    我怎麼能保持在發票是記錄生成沒有打破關係?

  • 回答

    1

    在發票表中創建兩個新列:

    InvoiceSource VARCHAR(100) 
    InvoiceSourceID INT 
    

    修改代碼來存儲的是什麼締造了發票的來源和編號。例如,如果是從與主鍵1009報價生成發票下面將存在於發票表:

    InvoiceId|InvoiceSource|InvoiceSourceID|... 
    ---------------------------------------- 
        1200| 'QUOTATION'|   1009|... 
    

    隨後如果銷售訂單ID爲1346被轉換爲發票下面將在存在發票表:

    InvoiceId|InvoiceSource|InvoiceSourceID|... 
    ---------------------------------------- 
        1200| 'QUOTATION'|   1009|... 
        1201| 'SALESORDER'|   1346|... 
    
    +0

    與您的解決方案的問題是,在SQL Server數據庫中的鏈接會錯過 – maztt

    +0

    @maztt,當你說「鏈接」你這是指什麼? – user7351608

    +0

    另外,當前的外鍵是什麼? – user7351608