對於大多數主要網站,您可以進行CRUD操作嗎?每個用戶都有自己的數據庫表嗎?我很想看到一個數據庫結構的例子,其中有多個用戶,我正在查看我的wordpress數據庫結構,並且無法瞭解twitter,tumblr甚至是stackoverflow如何運行數據庫。動態地爲用戶創建表格很容易嗎?提前致謝。每個用戶都有自己的數據庫表嗎?
回答
爲什麼每個用戶都有自己的表?用戶應該只是一個表中的條目。然後,您使用該用戶的ID來查找其他表中的其他記錄。
如果您的數據庫包含sy 6表,那麼每次添加一個用戶時,您也必須再次添加其他表。
所以現在你有10個用戶和60個表。
現在考慮必須連接到特定用戶的正確表... :) – 2010-08-01 05:54:43
哎呀!是什麼噩夢 – griegs 2010-08-01 05:59:26
有多種不同類型的數據庫,但通常不是。更常見的情況是,您將擁有一張表,但具有指定用戶標識的字段。在MySQL中,您可以選擇用戶標識符與特定值匹配的行的子集,這就像動態創建每個用戶表一樣。
實體 - 屬性 - 值(EAV)表通常令人討厭 - 性能差,但可能是適應功能要求的必要罪惡。 – 2010-08-01 05:56:06
@OMG,EAV如何發揮作用?根據數據類型您有不同的表格,但是您可以通過字段將條目鏈接到用戶。我不確定這與EAV有什麼關係。 – 2010-08-01 06:02:45
對於每個用戶,不需要單獨的表格。但是可能會有一些涉及數據庫的優化。
用戶實際上代表單行表的行。關於用戶,可以有其他表格用於特定目的。假設「評論」表包含用戶的評論,並且該表可以具有來自用戶的多個評論。然後,該用戶表與評論表具有一對多關係。
我在這裏看到的一些優化是創建視圖(Certin情況下的物化視圖),基於查詢使用的列索引,甚至基於日期/用戶的表的分區或其他相關的應用標準。
物化視圖是臭名昭着的不適應;表分區是您必須支付的一項功能(僅在SQL Server的企業版/開發版中提供,不知道關於Oracle ...)。這兩個概念都超出了OP的要求。 – 2010-08-01 05:58:01
您的問題的答案是「否」。通常這些網站所做的是爲用戶提供一個表,其中表的鍵是整數ID字段,屬性是用戶的屬性(例如名稱,屏幕名稱,密碼等)。在SQLite中,它看起來像這樣:
create table User (id integer, email string);
然後你有兩個表,比如blog_posts和comments。每個表格都包含所有用戶的博客文章和評論。爲了識別用戶,有一個「user_id」字段,該字段標識該表中的行屬於特定用戶。
create table BlogPosts (id integer, description text, user_id integer);
create table Comments (id integer, description test, blogpost_id integer, user_id integer);
其他數據庫的語法相似。 「user_id」將博客文章關聯到用戶,並將評論發佈給用戶。 blogpost_id將博客帖子關聯到用戶。即您可以將每個用戶與他的所有問題和評論相關聯。
您可以爲每個用戶創建一個表,但必須具有哪個用戶連接到哪個數據庫的映射,並且您需要始終爲每個用戶打開數據庫的新連接。
您無法安全地執行此操作,因爲參數化查詢無法將表名作爲參數。
- 1. HTML5 + Java JAX-RS + Neo4J:每個用戶都有自己的數據庫
- 2. 每個存儲庫都有自己的hg serve實例嗎?
- 3. 每個進程都有自己的頁表嗎?
- 4. 有了MVVM,每個UI窗口都有自己的ViewModel嗎?
- 5. 每個CALayer都有它自己的CGContextRef嗎?
- 6. 每個'HttpRequest'在ASP.NET中都有自己的線程嗎?
- 7. 應該每個組件都有自己的mapDispatchToProps嗎?
- 8. 每個類都必須擁有自己的OnClickListener嗎?
- 9. 每個進程都有自己的stdin,stdout和stderr嗎?
- 10. 每個活動都必須有自己的模型嗎?
- 11. 每個寶石都有自己的耙子嗎?
- 12. 每日記錄,應該每個用戶有它自己的表?
- 13. LARAVEL - 每個用戶擁有多個數據庫,用戶每次都選擇數據庫連接
- 14. 每個派生表都必須有它自己的別名Error?
- 15. JEvent是否有可能讓每個用戶都有自己的日曆?
- 16. 程序的每一行都有自己的地址嗎?
- 17. WCF多個端點,每個端點都有自己的用戶名/密碼
- 18. ZeroMQ上的每個隊列都需要自己的端口嗎?
- 19. 每個數據庫一個用戶vs所有數據庫的單個用戶
- 20. 每個用戶在iBrowser中都有自己的圖像文件夾,用於TinyMCE
- 21. PHP MVC - 每個頁面都需要自己的類嗎?
- 22. 每個線程都不需要它自己的JVM副本嗎?
- 23. 基於PHP的遊戲 - 給每個用戶自己的數據庫
- 24. Bing地圖中的每個圖層是否都有自己的數據源?
- 25. Nextgen Gallery - 每張圖片都有自己的圖庫
- 26. 兩個並行的TransactionScope每個都有它自己的連接
- 27. Postgresql - 每個用戶一個數據庫或每個用戶一個數據庫
- 28. 多個catch子句,每個都有自己的消息框
- 29. 多個UIAlertView;每個都有自己的按鈕和動作
- 30. Zend中的每個表都必須映射到它自己的類嗎?
在解決動態表創建之前,我會尋找其他解決方案 – 2010-08-01 05:02:38