comment table 原来是只接受client的comment, 所以设计如下.CREATE TABLE comment (
comment_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
client_id INT NOT NULL,
comment_body VARCHAR(255) NOT NULL,
comment_ip VARCHAR(15) NOT NULL,
comment_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
entry_id INT NOT NULL
);CREATE TABLE client (
client_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
client_email VARCHAR(80) NOT NULL,
client_password VARCHAR(26) NOT NULL,
client_first_name VARCHAR(50),
client_last_name VARCHAR(50),
);但现在要改成任何人都可以加comment包括client, 如果用户不是client, 需要他输入[name], [email]等数据, 这些都是client该有的.我是改动client table, 还是改动comment table, 还是有别的方法?
comment_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
client_id INT NOT NULL,
comment_body VARCHAR(255) NOT NULL,
comment_ip VARCHAR(15) NOT NULL,
comment_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
entry_id INT NOT NULL
);CREATE TABLE client (
client_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
client_email VARCHAR(80) NOT NULL,
client_password VARCHAR(26) NOT NULL,
client_first_name VARCHAR(50),
client_last_name VARCHAR(50),
);但现在要改成任何人都可以加comment包括client, 如果用户不是client, 需要他输入[name], [email]等数据, 这些都是client该有的.我是改动client table, 还是改动comment table, 还是有别的方法?
要么加一个不是client的comment2表,不是client的comment都记在这个表里,这个comment2表可以有name和emiail字段。
第三种办法是在comment上加多一个字段识别是client还是其他人的comment,增加name和email字段,client_id字段可以为空,但这种表比较混乱,不好管理。
再开一个comment表,查询时是查两次。但是有一个查询是不需要连表的,另一个也是大表连client表。结果两种情况对比就是再查多一个表还是再连一个表的比较了。我是觉得前一种比较快的。
comment_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
comment_body VARCHAR(255) NOT NULL,
comment_ip VARCHAR(15) NOT NULL,
comment_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
entry_id INT NOT NULL
);
CREATE TABLE user (
user_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
is_anonymous boolean not null,
user_email VARCHAR(80) NOT NULL,
user_first_name VARCHAR(50),
user_last_name VARCHAR(50)
);
CREATE TABLE client (
client_id INT UNSIGNED PRIMARY KEY ,
client_password VARCHAR(26) NOT NULL,
/* and other attributes..*/
FOREIGN KEY (client_id) REFERENCES user (user_id)
);
前台设计的时候。评论隶属于一个user,与user的性质无关。这样利用前台开发时的oo设计。