2014-01-20 83 views
1

Ms Access Table Screenshot表SQL數據庫中的設計

我打算將我的訪問數據庫移動到使用SSMA的sql服務器。我有一個名爲Eligibility的列,它具有下拉列表值,如圖所示。轉換爲SQL後,我意識到它沒有下拉列表選項。任何人都可以建議什麼是我的情況的最佳解決方案?我可以有任何其他選項來設計可以容納List值的SQL表嗎?

+0

我相信下面的答案是你需要的東西:http://stackoverflow.com/questions/2441427/restrict-varchar-column-to-specific-values – NickyvV

+0

謝謝NickyvV它確實有助於.. – user3167881

回答

2

您可以執行下列操作之一:

  1. 添加CHECK制約資格現場只允許一組predifined值被插入到該領域,如評論所說。
  2. 更好的解決方案是創建Eligiblity表(帶有id和value字段),並通過id字段從主表引用此表,可能會創建一個PK-FK關係。這樣: a)只有來自資格表的值纔會被允許。 b)您可以在Elibility表中更改和添加條目,而無需每次都更改約束條件。 c)前端應用程序可以使用Elibility表來添加下拉功能。
+0

@@ frikozodi如果數值小於10並且是固定的?我應該創建單獨的查找表還是應用約束? – user3167881

+0

@ user3167881我認爲查找表仍然更好,即使是單獨的性能。主表中沒有多個文本項(avg〜8個字節),您可以使用tinyint id(1個字節)。 –

2

SQL Server與訪問不起作用。它沒有下拉選項供您選擇。

以SQL Server作爲數據庫實現下拉選項的正確方法是將另一個應用程序作爲前端並讓用戶通過應用程序進行訪問。這樣管理安全性就更容易了。