我們假設您需要一張表來存儲設置。例如,我想將車輛設置存儲在一個表格中,但有超過100個設置,因此最好有一個包含100列的表格或包含2列的表格(1表示設置的名稱,1表示設置的名稱設置的值)?垂直或水平t-sql表的多個設置?
0
A
回答
1
要麼有它的優點和缺點。
爲了提高靈活性,我會去立式(每行中的每個設置)的方式
如果使用每行一個設置,
- 它會更容易添加新設置或刪除不需要的將來設置而不更改表格模式。
- 您可以有一個用戶界面,這樣做沒有觸及數據庫
- 您的客戶可以添加/不要求你的注意力
刪除設置,但(S)
- 您可能需要記得設置關鍵字,沒有智能感知
- 循環,光標
的100列接近
- 智能感知
- 這只是一個紀錄,應該會更快
- 沒有循環,沒有光標
BUT(一個或多個)
- 你可能有填充所有列如果它們不是NULLable
- 更改模式,你可以你必須改變所有的相關代碼
1
我都是爲了正常化。因此,我將創建三個表格:車輛,設置和車輛設置,其中包含車輛ID,設置ID和設置值的三列。其實我在生產中有這個實現。如果用戶沒有明確指定值,我的設置表中也會存儲默認值。
如果您決定在將來添加設置,此方法非常方便。與其修改表格並且可能面臨重構,您只需將其他記錄添加到設置表中即可。
1
我不同意迪米特里的答案,但提出另一方面。
12或100會查看您希望設置發生更改的頻率。
如果每個設置都是一個列,那麼您將對新屬性進行程序更改。更簡單的查詢語法。如果它們是單值屬性,那麼我認爲你仍然有第三範式和更高效的查詢。
如果你使用Dimitri建議的3個表格,那麼你的設計稍微複雜一點,但是你可以添加和修改屬性運行時間。查詢將更復雜,有多個連接。你可以在設置表上建立一個查詢來建立真正的查詢。當然,我會用tcoder建議的光標連接。
如果你有一個.NET或其他前端,那麼你也可以通過從設置表讀取來建立查詢。如果你像一個GridView一樣綁定,你將不能生成列,但再次沒有那麼多的工作。
相關問題
- 1. 在動態表中垂直設置tabindex,然後水平設置
- 2. 垂直和水平表
- 3. 如何水平或垂直平鋪多個wpf窗口?
- 4. 設置垂直或水平佈局視圖中的百分比
- 5. VSCode:多個水平和垂直面板
- 6. 如何在PDF中設置水平或垂直對齊文本?
- 7. 垂直到水平?
- 8. Verticle或水平「設置」表?
- 9. 垂直列表中的水平列表
- 10. 水平或垂直翻轉JavaFX圖像
- 11. 調整div垂直或水平
- 12. Android佈局設置兩個按鈕垂直和水平居中
- 13. 水平的MX表單或垂直的火花表單Flex
- 14. 垂直數據的水平HTML表格
- 15. 響應表的垂直和水平頭
- 16. 位置中心水平和垂直
- 17. TelerikRadMenu從水平位置到垂直
- 18. 轉置計數從水平到垂直
- 19. 垂直和水平並行
- 20. 水平垂直只有線
- 21. Datagridview水平垂直按鈕
- 22. Unity3D垂直/水平霧/
- 23. 滾動水平和垂直
- 24. 垂直水平RecyclerView ScrollView
- 25. Windows GDI:水平/垂直DPI
- 26. WPF中水平垂直WrapPanel
- 27. jquery滾動垂直/水平
- 28. 將水平html表反轉爲垂直
- 29. 水平製表符到垂直
- 30. 水平垂直數據表php mysql
所有的設置都是相同的數據類型嗎?他們會永遠在嗎? – HABO 2012-07-09 19:21:18
它們不是全部相同的數據類型。 – Xaisoft 2012-07-10 13:36:49