2014-04-27 188 views
-1

我正在評論系統上工作。您必須登錄到您的帳戶才能評論某些內容。每個用戶都有自己的數據庫,這是他們的用戶名。在數據庫中,它們是存儲信息的表。例如,將會有一個「約」表和一個「活動」表。這是建立數據庫的最佳方式嗎?它是否安全?請幫忙。MySql數據庫設計評論系統

+0

聽起來像是你從一開始就在這裏走錯了右:_「每個用戶都有自己的數據庫」 _ - _why_將每個用戶都有自己的數據庫? (你真的是指數據庫,還是你的意思是表?即使後者也沒什麼意義。) – CBroe

+0

不,我的意思是數據庫。我不知道如何在不創建數據庫的情況下獲取每個用戶的信息,名稱是他們的用戶名,並且有用於存儲信息的表。我應該如何設置它? – user3150101

+0

如果這是您當前的知識水平,那麼您應該先閱讀一些關於正確數據庫設計的書籍。 – CBroe

回答

0

你不希望每個用戶的數據庫,你想在你的表中使用userid列。

CREATE TABLE about (
    userid INT(11) NOT NULL PRIMARY KEY, 
    about_text TEXT 
); 

而且您希望使用userids而不是用戶名來允許在將來更改或更正用戶名,而不會影響很多表。您的用戶表將映射用戶名到用戶名:

CREATE TABLE users (
    userid INT(11) AUTO_INCREMENT PRIMARY KEY, 
    username VARCHAR(30) NOT NULL 
); 

CREATE TABLE comments (
    userid INT(11) NOT NULL PRIMARY KEY, 
    message_heading VARCHAR(100) NOT NULL DEFAULT '', 
    message_body TEXT NOT NULL, 
    created TIMESTAMP DEFAULT NOW() 
); 

等等。

+0

好的。但我不明白如何製作下面的表格。如果用戶想要關注帖子或者有人關注用戶的帖子。用戶如何看到誰在跟蹤他/她的帖子。我無法弄清楚數據庫設計的外觀。 – user3150101

0

什麼是使用一個單一的數據庫問題?想想當有一千個用戶時,你會有多少數據庫。

有了爲您節省每連接如建立到所有經分段數據庫的單一數據庫。您提到的那些表(關於和活動)可以使用用戶標識保存單個用戶的所有信息,如果您使用外鍵的話。

猜一個良好的開端將是(我只是把「基地場」,隨意添加你需要儘可能多的):

TABLE Users (userid, pass) 

TABLE Post (postid) 

TABLE Comment (commentid, comment, score, userid, postid) 
+0

因此,如果我想從用戶那裏得到評論,那麼我必須得到用戶的「id」並獲得與用戶ID相匹配的評論的「id」?其中評論ID設置爲匹配用戶的ID,而不是自動遞增1。這是正確的嗎? – user3150101

+0

當您想要檢索特定用戶的所有評論時,可以查詢表中的用戶標識與表中的用戶標識進行匹配。用戶 – Juank