我想將常量列表保存在數據庫列中。 可用的選項是字母表的部分:上,下,數字,符號。 用戶已經可以選擇其中的多個,但我怎樣才能將它們保存到數據庫。我認爲數據庫關係不適合4個常量?在數據庫中存儲常量的列表
-1
A
回答
0
實際上,擁有一張桌子是很好的選擇 - 它很簡單,而且使用此解決方案添加更多選項或修改現有選項非常簡單。
雖然,我可以理解這個問題的原因,但它可能讓整個表只存儲4個值的「開銷」。
其他選項是:
使用
Enum
類型的字段,既PostgreSQL和SQLAlchemy有這方面的支持。但是,如果要添加更多值或編輯現有值(對於該表,您只需要使用更復雜的SQL),那麼修改Enum
字段會更加複雜。在DB使用
integer
(或smallint
)領域,並有適當的常數在你的代碼(CODE_UPPER = 1
,CODE_LOWER=2
等)。在數據庫級別,還可以有一個限制條件來限制字段值只有可能值的集合。我不太喜歡這個解決方案,因爲它可能不太可靠(如果你沒有這個約束,你可能會意外地保存錯誤的值),當你查看數據庫的時候不太明顯。
P.S.不知道爲什麼你被低估了,也許人們被「數據庫關係不適合4個常量」冒犯了,可能是「除了有4個值的表以外,還有其他選擇嗎?」。 另外我猜測PostgreSQL
和SQLAlchemy
從標籤,這將是很好在你的問題中提到這一點。
P.P.S.有了上面的書面,在重新閱讀你的回答後,我認爲你也可能有興趣保存多項選擇的價值(例如upper
+ lower
在同一時間)。在這種情況下,您仍然可以使用上面所有的選項和一些特定的添加項(例如具有帶單獨表格的多對多表格;使用ARRAY
字段來保存多個值;或者在Python中使用常量並將它們保存爲數據庫中的單個整數,您可以將值編碼爲位 - 第0位表示上位,第0位和第1位 - 表示上下等等)。
相關問題
- 1. 如何在數據庫中存儲常量數據
- 2. 存儲枚舉常量數據庫
- 3. 在通用列表中存儲來自數據庫的數據
- 4. 其中常量應該存儲在數據庫中
- 5. 存儲在表(數據庫)
- 6. 在數據庫類中存儲變量
- 7. 如何將PHP常量存儲在MySQL數據庫中
- 8. 在數據庫中存儲類常量(用作位掩碼)?
- 9. 在數據庫中存儲應用常量
- 10. 在數據庫中存儲scrapy隊列
- 11. 在數據庫列中存儲對象
- 12. 在數據庫中存儲隊列
- 13. 在數據庫中存儲MSMQ隊列
- 14. 常量數據應存儲在哪裏?
- 15. 在數據庫中存儲時間表
- 16. 如何在C#項目中存儲表格常量數據?
- 17. 存儲在存儲桶列表中的項目數量
- 18. 在數據庫中存儲可變數量的數據
- 19. 數據倉庫中的列存儲
- 20. 獲取數據庫的常量並將其存儲在緩存中
- 21. 將數據庫列值存儲在javascript變量中
- 22. 在數據庫中存儲變量行/列CSV文件
- 23. 存儲在內容數據庫中的Sharepoint列表字段?
- 24. db2存儲過程在數據庫中的列表
- 25. 在數據庫中存儲大型列表的正確方法
- 26. 未存儲在數據庫中的列表 - 休眠彈簧
- 27. 存儲常量數據:python模塊與數據存儲區
- 28. 用於在C++中保存常量數據的存儲器
- 29. 在MySQL數據庫中存儲大量數據的問題
- 30. 不使用數據庫存儲常量變量
爲什麼你認爲一張桌子不合適? –
只有4個常量。 – R3turnz
是的,你說過。但是,你爲什麼認爲這不合適呢? –