2013-04-11 32 views
0

假設我有db 'Product''Status'中的表。如何處理數據庫中的狀態ID

'Product' design is: Id, Name StatusId 

'Status' design is: Id, Name 

「狀態」的數據(例如):1區,2付費

問題是:當我要預訂一張從UI的一些產品,如何讓正確的標識從狀態表?如何處理它們?

我有一些解決方案:只要記住,1是儲備,2是支付。另一個是使用'鑰匙',但問題是:可能將來你會添加另一個狀態,例如3-Returned。

編輯:

感謝答案,但問題是另一個問題。 當你想要Create new UI for reservation only時出現這個問題,例如你爲用戶數據(用戶名,聯繫人)和選擇產品選項提供輸入並點擊'保留'按鈕,之後我需要將所有數據保存在數據庫中,但是我需要StatusId作爲從狀態表中退回。 How I know which record in 'Status' table is Reservation?

回答

0

每次準備好視圖(UI)數據時,從數據庫填充Status對象的列表。所以你可以在視圖中顯示它作爲一些選擇組合。如果您將新行添加到statuses表格中,下次您的列表將包含它們。 如果您不經常更新狀態,則只能在每次會話的應用程序啓動/一次時加載此列表。

編輯: 通常在任何組合小部件中,您可以將選項列表定義爲對(id,name)。在你的情況下,它會是[(1,保留),(2,Paid)],以便選擇的組合框的值是一個id。該ID就是你保存在數據庫中的內容。

+0

編輯我的帖子,看請! – 2013-04-12 04:20:40

+0

我不確定我是否知道,但我擴大了答案。 – vadchen 2013-04-12 09:05:57

+0

我不打算使用組合,我只是想創建用戶界面進行預約,當用戶提供所有輸入時,他只需點擊'保留'按鈕,然後他通過終端付款,我的程序必須更新產品爲'付費'。 – 2013-04-12 09:19:45

0

在我的想法......你可以有FK從「狀態」,以「產品」象下面這樣:

「產品」的設計是:ID,姓名,FK_IdStatus StatusId
「狀態」設計:ID,姓名

然後在UI您可以選擇所有的「狀態」爲組合框選擇

選擇ID,名稱從狀態...並指定這個數據表以組合框數據源,並選擇combobox.ValueMember =「ID」和combobox.DisplayMember =「名稱」

,那麼你可以選擇你的產品在UI的選擇組合框
狀態,並在您的「產品」表中的任何狀態存儲在FK_IdStatus每個產品

+0

我編輯我的文章,請參閱請! – 2013-04-12 04:21:45

0

vadchen是正確的太...我可以告訴你有,而不必表「狀態」 枚舉並且你可以救「狀態」的枚舉的ID在你的「產品」表

如果你不打算組合,然後你管理你r類型在每個過程中。 我的意思是......

方法A導致1.Reserved
方法B使得2.Paid
方法C使得3.another狀態
等等...

然後,在這種情況下,你知道過程A始終導致1.Reserved那麼如果你有任何其他過程(如過程C),你必須管理它到其他'狀態'

但我知道你有你的「產品」表,以保持該枚舉類型編號(狀態ID)作爲「INT」不是一個nvarchar的類型...象下面這樣:

「產品的設計是:ID,姓名,IdStatusType(如INT)

,那麼你可以刪除‘狀態’表,你知道ID的StatusType在你的‘產品’表

相關問題