[英]distributing data from one table to multiple tables in sql server
我有3張桌子:
Item_Detail ----------------- ID,名稱
ItemPurchased_Detail --- QtyPurchased,RateOfPurchase,DiscountReceived
ItemSold_Detail ----------- QtySold,銷售率,DiscountGiven
另外,我有一個主表,ITEM_FULL_DETAIL,其中包含來自上述3個表的所有列。
我有一個winform應用程序,具有一個包含所有文本框的表單,用於在ITEM_FULL_DETAIL表中插入數據。 用戶將輸入所有數據,然后單擊“提交”按鈕
我想先在主表中插入數據,然后將數據分別分配到所有3個表中。 為此,我應該使用什么? 例如觸發器,過程,視圖或聯接?
另外,我正在使用ITEM_FULL_DETAIL表,因為我想保護我的實際表不受任何數據丟失的影響,例如斷電的情況。
我應該使用臨時表代替ITEM_FULL_DETAIL表,還是僅使用當前表就可以了?
還有其他辦法嗎?
您可以使用數據庫觸發器或在應用程序級別插入所有記錄。
您可能應該重新考慮設計:在不同的表中復制相同的數據通常是一個壞主意。 在這種情況下,您可以將ITEM_FULL_DETAIL替換為視圖,然后將數據保留在基礎表中。 這樣,您只有一個數據副本,因此您不必擔心表之間的不一致。
如果這樣做,則可以按正確的順序將新數據插入3個基礎表中(可能是最好的主意),也可以在ITEM_FULL_DETAIL視圖上使用INSTEAD OF觸發器(更為復雜)。 可以使用ORM,ADO.NET,存儲過程或最適合您的應用程序設計的任何方式來完成INSERT。
如果確實有重復數據的理由,那么可以共享它會很有幫助,因為有人可能會對這種情況有更好的建議。
另外,我正在使用ITEM_FULL_DETAIL表,因為我想保護我的實際表不受任何數據丟失的影響,例如斷電的情況。
..什么? 您如何保護自己的餐桌? 您想防止什么? 如果您擔心的是數據完整性,則絕對不需要ITEM_FULL_DETAIL
表。 您可能正在創建一種情況,其中使用此中間表可能會損害數據完整性。
您知道交易嗎? 使用它們。 如果寫入三分之二的表,則客戶端的電源將關閉並且無法完成第三次寫入,事務將失敗並且部分數據將被回滾。
除非我完全不了解這里的要點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.