现在想建立一个数据库 含两张表
一张表为人的信息
CREATE TABLE users
(
id# int not null,
name char(10) not null,
gender char(7) not null,
birthdate datetime null,
qqid# char(20) not null
);
另一张为聊天记录
CREATE TABLE qq
(
qqid# char(20) not null,
timeforchat datetime not null,
chat text not null,
font varchar(100) not null
)
现在想在这两个数据库间建立一个主键外键的关系,
但是聊天记录表无法把qqid#当成主键,只能把(qqid#,timeforchat)当成主键
求问怎么把这两个表的qqid#关联起来
或者有没有什么其他的建立聊天记录表的方法可以借鉴?
------解决方案--------------------
CREATE TABLE users
(
id int not null,
name char(10) not null,
gender char(7) not null,
birthdate datetime null,
qqid char(20) not null primary key
);
GO
CREATE TABLE qq
(
qqid char(20) not null constraint FK_QQ foreign key references users(qqid),
timeforchat datetime not null,
chat text not null,
font varchar(100) not null,
constraint PK_QQ primary key(qqid,timeforchat)
);
聊天记录表的qqid参照users表的qqid建立外键;
聊天记录表的qqid + timeforchat为联合主键。
------解决方案--------------------
主表的qqid#建一索引,这样,从表的qqid#就可以建成外键了。