这是一个非常业余的问题(不要因为它而让我失望)但是如何创建一个列
征求意见
包含分配给他们的帖子的ID?
例如,如果我要发布关于#48的评论,我将如何在MySQL中进行设置以便
评论显示在第48个帖子而不是所有帖子上?
提前致谢:)
答案 0 :(得分:6)
您不会为评论创建列,而是创建新的表。
简单地,
table Post
id,
content
table Comment
id,
content,
post_id
其中post_id是对帖子ID的引用。
答案 1 :(得分:2)
它是一对多关系(一个帖子可以有很多评论),所以你会想要一个新的表格。
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');
答案 2 :(得分:0)
首先,您需要在PHP代码中执行的操作是存储注释所分配的帖子的变量ID(例如$postId
。然后您可以在 new 表中插入注释有些人喜欢这样(我不是在写表结构,希望你能从查询中看到它):
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
列被称为外键,应该为它定义索引。
答案 3 :(得分:0)
如果您的帖子有表格,则需要一个新表格供您评论。要将评论与帖子相关联,只需在评论表中添加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)
或其他适合您设计的内容。
答案 4 :(得分:0)
你需要像
这样的东西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
是无符号整数。