有两个表 - 帖子和评论:
create table posts
(
id integer not null primary key auto_increment,
body text not null
);
create table comments
(
id integer not null primary key auto_increment,
body text not null,
post_id integer not null references posts(id)
);
现在我想再创建一个表 - 报告(“坏帖子”标志),我希望它存储帖子和评论的报告。
create table reports
(
id integer not null primary key auto_increment,
obj_type tinyint not null, /* '1' for posts and '2' for comments */
obj_id integer not null,
body text not null
);
alter table reports add foreign key(obj_id) references posts(id) on delete cascade;
alter table reports add foreign key(obj_id) references comments(id) on delete cascade;
如您所见,单个字段中有两个引用(我通过 obj_id 区分它们),问题是 - 这样做可以吗?
如果不是什么会更好的解决方案?
提前致谢。