這是一個很業餘的問題(不評分我失望吧),但我會如何創建一個列MySQL表徵求意見
徵求意見
包含他們被分配到了帖子的ID ?
例如,如果我是張貼在崗位#48一個評論,我將如何設置了在MySQL所以
評論顯示出來的崗位#48,而不是所有的職位?
感謝提前:)
這是一個很業餘的問題(不評分我失望吧),但我會如何創建一個列MySQL表徵求意見
徵求意見
包含他們被分配到了帖子的ID ?
例如,如果我是張貼在崗位#48一個評論,我將如何設置了在MySQL所以
評論顯示出來的崗位#48,而不是所有的職位?
感謝提前:)
它是一對多的關係(一篇文章可以有很多評論),所以你會想要一個新的表。
comments_tbl
- comment_id | int(11) auto_increment
- post_id | int(11) (FK to post table)
- author_id | int(11) (FK to the user table OR author_name)
- date | datetime
- comment | text
如果你希望能夠標誌和適中的評論,你可能希望包括一些諸如:
- date_approved | datetime
- flagged | int(1)
你的SQL然後顯示一個帖子會像
mysql_query("SELECT comment_id, author_name, comment FROM comments_tbl WHERE post_id = '$postid' AND date_approved IS NOT NULL AND flagged = '0'");
要將註釋添加到數據庫:
mysql_query("INSERT INTO comments (post_id, author_id, date, comment) VALUES ('$postid', '$author_id', '$date', '$comment');
這正是我所期待的。謝謝 – 2011-06-08 23:30:37
沒問題,剛纔注意到上面關於添加到表中的註釋,包括一個演示INSERT ..請記住在使用'mysql_real_escape_string'插入之前清理變量,或者更好地使用預編譯語句,如'pdo'和'mysqli' – lethalMango 2011-06-08 23:34:04
你不創建註釋的列,而是一個新的表。
簡單,
table Post
id,
content
table Comment
id,
content,
post_id
哪裏POST_ID是該職位的id的參考。
我知道,但我將如何能夠顯示意見,以特定的職位,它的目的是? – 2011-06-08 23:22:56
@Mohamed Yusuf。那麼,這取決於你做了什麼。如果你有一個特定的帖子,你可以從評論處選擇* WHERE post_id ='帖子ID' – joakimdahlstrom 2011-06-08 23:27:09
可以說他們在帖子#50的頁面上。我怎麼能讓用戶發表評論,只發布50 – 2011-06-08 23:29:35
首先,你需要在PHP代碼做的是在註釋被分配到(例如$postId
。然後,你可以插入註釋成這樣新表somewhow後的變量ID存儲(我不是寫字檯的結構,希望你能看到它從查詢):
mysql_query("INSERT INTO comments (id_post, text) VALUES ('".$postId."', 'Text of the comment'");
當你要選擇它,您將使用此查詢:
mysql_query("SELECT text FROM comments WHERE id_post = '".$postId."'");
順便說一句,在id_post
列CAL導致外鍵有應該爲它定義索引。
非常感謝你@詹姆斯 – 2011-06-08 23:23:15
如果您有關於您的帖子的表格,您將需要一張新表格供您評論。要將評論與帖子相關聯,只需在評論表中創建一個post_id
列。
comments
- comment_id int(8) Auto_Increment
- post_id int(8)
- comment_author varchar(255)
- comment_content text()
post_id
應該是您的評論中關聯後,每個評論得到它自己排在該表中的ID。如果您的作者可以通過更好的ID進行關聯,只需將varchar(255)
更改爲int(8)
或其他與您設計相符的內容即可。
你需要像
CREATE TABLE `comments` (id int unsigned not null auto_increment PRIMARY KEY,
post_id int unsigned not NULL,
// other fields, post_date, post_text, etc
FOREIGN KEY (post_id) REFERENCES posts(id) ON DELETE CASCADE ON UPDATE CASCADE)
注:FOREIGN KEY
由INNODB
引擎支持,所以如果你的表是MyISAM
,你不需要它。 post_id
必須與posts
中的主鍵具有相同的類型 - 我假定post.id
是無符號整數。
你不能被評級,你是在率1. – 2011-06-08 23:15:35
@ypercube我想成爲有趣的笑聲反正你知道我會如何設置? – 2011-06-08 23:17:03
你的'帖子'表是怎麼樣的? – a1ex07 2011-06-08 23:17:34