LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 872|回复: 5

这个sql怎么写?

[复制链接]
发表于 2005-8-22 09:27:55 | 显示全部楼层 |阅读模式
我这里有两个表,一个是
course(
id serial primary key,
name varchar(20)
);
我还想建一个teacher表,一个teacher可以有多个course,这个表怎么建?
我用过数组:
teacher (
id serial primary key,
name varchar(20),
course integer[] references course(id)
);
但是这样建,postgresql就报错,说不能用integer[]和integer进行比较
发表于 2005-8-22 18:15:58 | 显示全部楼层
再建一个teacher_course关系表啊.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-22 19:44:46 | 显示全部楼层
这样的话数组结构不就没有用武之地了么?
况且一个teacher最多也不过两三个course,多一个表会不会浪费?
回复 支持 反对

使用道具 举报

发表于 2005-8-24 15:39:44 | 显示全部楼层
Table1:

course(
id serial primary key,
name varchar(20)
teacher interger references teacher(id)
);

Table2:

teacher (
id serial primary key,
name varchar(20),
);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-24 19:01:34 | 显示全部楼层
Post by eein
Table1:

course(
id serial primary key,
name varchar(20)
teacher interger references teacher(id)
);

Table2:

teacher (
id serial primary key,
name varchar(20),
);


有数据冗余的啊
我就想知道如果我在postgresql中可不可以在数组上加外健?
回复 支持 反对

使用道具 举报

发表于 2005-8-30 17:04:16 | 显示全部楼层
给你个SQL SERVER 的

course(
id serial primary key,
name varchar(20)
);

----------------------------------

teacher (
id serial,
name varchar(20),
courseid integer
) on primary;
go

alter table teacher with nocheck add
constraint [PK_user_A] primary key
        (nid, courseid)  ON primary
GO
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表