我正在製作一個網站,用戶每月輸入一次數據,這個數據存儲在一個mysql數據庫中,帶有一個日期鍵,因此可以按日期。瀏覽這些數據讓每個用戶都擁有一個單獨的表格時,它會更容易和更具人性化,但是我非常確定這樣做會是一個壞主意。任何人都可以證實這一點並提供其他解Mysql爲每個用戶分開表。 (用戶每月輸入數據,如果這個數據是在一個單獨的表中輸入的話)
0
A
回答
0
那麼一個新用戶會成爲一個新表?
此:
- 意味着DDL權利(CREATE TABLE)到MySQL網站的用戶(除非你手動或通過某種crontab的任務做)
- 不會使它很容易解析的withouth的混合mysql的user_schema表和常見的DML操作,每當你想獲取所有用戶的數據,或者僅僅知道用戶的列表
真正的答案是不容易的,不是絕對的,但理想情況下,作爲一個「宗教」的意見,我儘量避免模型操作在我的網站的日常生活中。 將自己定位於元模型化。
希望它的幫助下,
S.
1
爲什麼要這麼做? SQL將爲您過濾數據...例如獲取當月的數據:
select col1, col2, col3 from tbl1 where date_format(date_col, '%m') = date_format(now(), '%m')
0
使用歷史記錄表可以有一個優勢,主要是當有性能的原因這樣做時。然而,一般來說,除非您計劃擁有大量數據(大多數RDBMS可輕鬆支持數百萬條記錄,而不會影響性能),否則無需將當前月份的數據與上個月的數據分開。 我不會推薦將表格僅用於演示目的。
你必須考慮其他事項以及歷史表。例如,您需要安排的事件將數據從當前表移動到歷史記錄表。如果您更改當前表格,則還需要更改歷史記錄表格。查詢所有數據可能會更麻煩一些,因爲您使用的是UNION。
似乎更容易在單個表上有適當的表索引,並且如果需要,可以查看當前的月份數據。但是,如果性能是一個問題,那麼我同意將數據移動到歷史記錄表可能是有利的。
相關問題
- 1. mySQL數據爲每個用戶唯一
- 2. 如何查詢數據的第一個月爲每個用戶
- 3. MySQL的:數子表爲每個用戶
- 4. SCANF在輸入每個數字,直到用戶輸入0
- 5. Postgresql - 每個用戶一個數據庫或每個用戶一個數據庫
- 6. 的MySQL從每一個表中獲取用戶最新數據
- 7. 如何爲每個用戶創建單獨的數據庫
- 8. 每個數據庫一個用戶vs所有數據庫的單個用戶
- 9. 爲每個用戶插入一行mysql
- 10. 在這裏,在表中的每個TR具有用戶和用戶數據。是使用形式爲每個用戶或一種形式的爲所有用戶
- 11. 如何讓這個表單的輸出輸入一個數組?
- 12. 在Tsung中向每個用戶指定單獨的數據
- 13. 如何根據表單中的用戶輸入從另一個表中插入數據字段?
- 14. html表單輸入 - 每個輸入字段的多個答案
- 15. 根據用戶輸入,其中用戶輸入是沿着幾個逗號分隔的數據
- 16. 爲MySQL 10M記錄中的每個用戶提供的所有用戶或單獨的表的一個表db
- 17. 按用戶分組爲每週,每月的數據分組
- 18. 每個用戶一個數據庫
- 19. MySQL的信息輸入到表中根據用戶輸入
- 20. 從單獨文件中的用戶輸入數據創建一個向量(C++)
- 21. 向一個mysql數據庫輸入數據的HTML表格
- 22. 如何創建一個用戶可以在Python中輸入數據的GUI表?
- 23. 在新工作表中輸入用戶表單數據
- 24. 每個用戶應該有一個單獨的獨立數據庫嗎?
- 25. 如何顯示用戶輸入的每個數字
- 26. 如何爲輸入的句子中的每個單詞分配一個數字?
- 27. 在MySql中爲每個客戶端創建一個數據庫
- 28. 如何強制用戶每天僅輸入一次數據?
- 29. 使用輸入的表單數據在另一個區與HTML
- 30. 在ASP.NET應用程序中爲每個用戶使用單獨的數據庫
爲什麼這是一個壞主意? – 2013-02-17 16:31:59
@ExplosionPills - 嗯?假設所有字段都是相同的,只需在表中添加一個UserId列即可。然後,您可以輕鬆地由用戶查詢 - 除非我誤解了某些內容,否則沒有必要或不需要爲每個用戶設置單獨的表格。 – sgeddes 2013-02-17 16:37:56
我猜不是每個用戶都有一個單獨的表格,而是一個單獨的用戶歷史表格 – 2013-02-17 16:39:58