我正在構建一個處理服務和硬件產品的訂單和開票系統。 表格結構的一部分簡化如下。 (現實生活中有更多數量級的表):如何創建用於在SQL後端的多個表中輸入複雜相關數據的結構
我想從標準訂單列表中選擇一個訂單,即與公司的規模相關的訂單,並且具有所有各種訂單與此標準表格相關的產品可以通過正確的關係在適當的表格中創建。 舉個例子:我爲一個5人的小公司選擇計算機和配件的標準訂單。訂單已創建,OrderItem行也與訂單和產品鏈接。
客戶(甲方的子集)
Customer_ID (PK, FK to Party) CustomerName ...
訂購
Order_ID (PK) Customer_ID (FK to Customer) OrderDate OrderNumber ...
OrderItem的
Order_ID (PK, FK to Order) Product_ID (PK, FK to Product) Amount ...
產品
Product_ID (PK) ProductName Price Info ...
這個例子是易於編程,但具有需要更新,也許10相互關聯的表的時候 - 我不知道什麼是最好的策略。
是它最好從生產表來獲取數據:
1)一組模板的表,或多或少作爲生產數據的鏡像,相互關聯的方式相同他們,但只含廣義數據(標準)和日期等沒有cols?
2)將模板存儲在生產數據表中,使用額外的字段來表示它們?這可以在這些行中創建大量空列,如關於日期等。
3)使用其他編程方法並使用它。就像調用不同存儲過程的表一樣,具體取決於選擇的模板!?
4)???
希望這是可以理解的。
我很困惑 - 你想存儲新客戶「標準」的訂單(即 - 「哦,你是開始一家新公司,這裏是我們的基本業務包,加上一些調整「),或者你只是試圖存儲一般的訂單?其他:避免使用保留字來命名事物(比如'Order',儘管其中的替代品可能很笨拙)。避免使用表名作爲前綴(id列除外)。命名列時不要使用該類型,在使用後命名 - 「OrderDate」可能應該是'orderedOn'或'createdOn'。 –
嗨。是的,但'標準'包不僅包含訂單本身,還包含與公司和訂單相關的其他許多事項,現在必須輸入到不同的表格中。我希望能夠在列表中選擇幾種「標準」設置中的一種,將它們輸入多個表格,然後針對特定情況下的不同情況進行編輯。所以'訂單'只是一個例子。 – Idonodi
嗯,那麼我想我想用某種形式的1,但儘可能重新使用'實際'表。所以,你應該使用'product'表,並且只需要一個'purchaseTemplate'表等等。絕對不要用2 - 如果你在某些查詢中忘記了flag列,你可能會遇到麻煩。 –