表中某列 个数不确定怎么办

星光灭绝SLE 2013-03-05 01:42:36
比如:
A表是班级表 里面有3条数据,ClassId分别为1、2、3
B表是班级成员表,通过ClassId和A表关联
B表除了ClassId外,还有Student这个字段,比如用来装学生姓名

现在的问题是,每个班人数不一样

比如1班有:甲1 甲2 ,2个人
2班有:乙1 ,1个人
3班有:丙1 丙2 丙3 ,3个人

怎么才能才Student字段中装下这些学生名字啊?
(不能用字符串链接 Student='甲1,甲2' 这种,而是当ClassID=3时,B表的Student有3个独立的数据,丙1、丙2、丙3)

我听说要要有什么子表?联合主键?什么玩意的。。。没懂啊。。。从来没建立或用过这种表


————————————————

是不是可能这样理解:

比如ClassId=3

那B表就有3条数据

主键ID ClassID Student
1 3 丙1
2 3 丙2
3 3 丙3

这样是吧?
...全文
221 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuifengde 2013-03-06
  • 打赏
  • 举报
回复
引用 3 楼 qq51099008 的回复:
引用 1 楼 chuifengde 的回复:要主键就这样 难道还可以不要主键?用ClassId当主键吗?那又怎么处理重复问题?
建议你先看点数据库理论知识,看看实体、属性、键等概念,然后就明白主键可以用一个属性表示也可以多属性联合表示,联系到实际中成员一般有成员号,身份证等唯一信息,用它们都行,就你的表中,如果不加主键,那同一个班有相同姓名的人就没办法区分了
  • 打赏
  • 举报
回复
用学号or自动编号做主键
try-catch-finally 2013-03-05
  • 打赏
  • 举报
回复
用学号什么的当主键不就行了吗。联合主键就是把多个字段当成主键,因为有时候一个字段不能唯一表示一个事物,需要几个一起才能表示。例如姓名 年龄 出生日期假设没有出生日期一样的名字也一样因为有重名和同出生日期的,每个都不能唯一确定一行,就用这两列一起组合成联合主键,可以唯一确定一行
qq51099008 2013-03-05
  • 打赏
  • 举报
回复
引用 1 楼 chuifengde 的回复:
要主键就这样
难道还可以不要主键?用ClassId当主键吗?那又怎么处理重复问题?
szm341 2013-03-05
  • 打赏
  • 举报
回复
就如lz例子那样设计啊,应该不需要再加字表什么了吧,是想要建立一个专门的学生表,其他表中用学号来代表吗
chuifengde 2013-03-05
  • 打赏
  • 举报
回复
要主键就这样

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧