菜鸟提问一个建表的问题!

luoyewuhen 2003-08-20 02:43:06
我有四列数据,字段名分别是:A、B、C、D;他们的关系是:A与B之间是一对多的关系;B与C之间是一对多的关系;A、B、C三列数据唯一确定D;
请问表应该怎么建?table1(A,B,C,D)肯定是需要建的,table2(A,B)、table3(B,C)需要建吗?
...全文
33 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
friendwu 2003-08-20
  • 打赏
  • 举报
回复
建议楼主看数据库原理
lansquenet 2003-08-20
  • 打赏
  • 举报
回复
根据你的需要和行业的复杂性判断是否table1中a为table2中a的真子集合
如果是,建table2
同理建table3

至于判断吗,呵呵,看你自己哟
luoyewuhen 2003-08-20
  • 打赏
  • 举报
回复
up
luoyewuhen 2003-08-20
  • 打赏
  • 举报
回复
当前建表的话,table1与table2中的a肯定一致;我就怕以后需要扩展a的取值范围,一旦扩展a的取值范围,那么table1中的a就只是table2中a的一个子集了;这样的话,是不是应该考虑建表table2、table3?我就是考虑到数据的冗余才在此讨教高手是否需要建table2、table3
lansquenet 2003-08-20
  • 打赏
  • 举报
回复
如你所说的话,可以从table1中使用sql语句来实现,
除非在table1中的a只是,table2(a,b)中a的一个子集,否则的话就没有必要建立table2
同理来考虑table3建立的必要性

要综合考虑数据的冗余和表的个数
luoyewuhen 2003-08-20
  • 打赏
  • 举报
回复
我ab、bc当然要有另外的用途了,我需要根据a选择的不同,返回不同的b;选择不同的b,返回不同的c。这样的话,我是否需要建table2、table3
19191919 2003-08-20
  • 打赏
  • 举报
回复
一个表,完全能满足你描述的要求,除非,你的a,b 或b,c有另外的用途,并且他们不一定非出现在abcd中,那末你可以建立a,b或b,c
luoyewuhen 2003-08-20
  • 打赏
  • 举报
回复
假设A与B之间需要多加一条关系,使得它们从1:n的关系变成1:(n+1),难道就在table1中多加一条记录?那样的话,感觉怪怪的
hjb111 2003-08-20
  • 打赏
  • 举报
回复
也可以建,但没有这个必要了!
CrazyFor 2003-08-20
  • 打赏
  • 举报
回复
如果建了table1(A,B,C,D),那就不需要table2(A,B)、table3(B,C)

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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