我有一個管理應用程序的銷售,庫存和支付從一個Web界面的倉庫整個saler。特別是,當訂單受到影響時,它必須創建一條與每個訂購的產品相對應的產品線。股票可用性的驗證在訂單的時刻完成。驗證訂單
考慮驗證的以下兩種方式訂購:
1)上表訂單行,是做了選擇上的產品veridying是否存在足夠的庫存使用觸發「BEFORE ... ON INSERT」。
2)做一個SELECT ... FROM訂單行JOIN產品,其中定量
我的問題是關於哪種情況,這兩種選擇的每一個更有可能?爲什麼?
感謝
我有一個管理應用程序的銷售,庫存和支付從一個Web界面的倉庫整個saler。特別是,當訂單受到影響時,它必須創建一條與每個訂購的產品相對應的產品線。股票可用性的驗證在訂單的時刻完成。驗證訂單
考慮驗證的以下兩種方式訂購:
1)上表訂單行,是做了選擇上的產品veridying是否存在足夠的庫存使用觸發「BEFORE ... ON INSERT」。
2)做一個SELECT ... FROM訂單行JOIN產品,其中定量
我的問題是關於哪種情況,這兩種選擇的每一個更有可能?爲什麼?
感謝
你可能想的(書面)第三個選項。
即使您在應用程序層中完成了這項工作,您仍然需要在單個事務中執行所有檢查和提交,可能是在單個可序列化事務中。
根據您的應用程序,序列化事務可能不適合您。一些在線供應商接受訂單時不保證他們有足夠的庫存來填充它。稍後,您可能會收到一封電子郵件,說有些東西已經延期交貨。 (請注意)
althoug我認爲你的答案是正確的onde。如果你只能選擇這兩種選擇,我給你選擇的是什麼? – unnamed 2012-02-13 18:19:02
@fegol:他們都沒有完成您似乎想要的工作 - 確保現有庫存用於完成*此訂單而不是其他訂單。 – 2012-02-14 03:00:07
您正在使用哪種RDBMS? – 2012-02-13 01:24:31
@Shark PostgreSQL – unnamed 2012-02-13 01:26:12
只需我兩分錢 - 處理應用程序業務邏輯層中的驗證。 – 2012-02-13 02:31:35