顯而易見的答案是,將一列作爲字符串是毫無意義的,因爲您無法對其執行任何體面的數據庫查詢。但是,說你想存儲用戶信息,例如,他們的用戶名,姓名和電子郵件(等等)的隱私偏好。在運行時處理的數據庫很多列vs一個字符串列
將此作爲單列命名,例如「設置」會更好地提高性能,因爲這些變量不會與任何其他模型一起使用?
這個變量可能類似於「{username => true,name => true,email => false}」,並且可以在運行時處理。
顯而易見的答案是,將一列作爲字符串是毫無意義的,因爲您無法對其執行任何體面的數據庫查詢。但是,說你想存儲用戶信息,例如,他們的用戶名,姓名和電子郵件(等等)的隱私偏好。在運行時處理的數據庫很多列vs一個字符串列
將此作爲單列命名,例如「設置」會更好地提高性能,因爲這些變量不會與任何其他模型一起使用?
這個變量可能類似於「{username => true,name => true,email => false}」,並且可以在運行時處理。
您創建的字符串會比存儲單獨的列消耗更多空間,因此錶行會更大,並且數據庫服務器上的緩存效率會更低。我根本沒有看到潛在的性能優勢。
我認爲,在此可以接受的數據庫實踐的唯一情況是:
在性能上有許多因素需要考慮。如果連接或數據庫服務器速度慢,那麼您可能會正確執行您的建議(以提高性能)。
但請記住,您仍然需要解析字符串。
在大多數專業項目中,這將被認爲是可怕的做法。像你這樣做,使代碼非常不可維護。它打開了使用相同領域的各種東西,如喜歡的顏色,等等。
如果你在地下室修修補補,那就去做吧,但要知道如果你想要寫一段生活的代碼是很可怕的。
它取決於你使用哪個運行時,如果你使用C++,你可以用整個數據庫存儲文件(笑話) –