数据库设计 数据库设计,两张表,表1和表2,表1的外键是表2的主键,表2的外键是表1的主键,这个设计有错吗?错在哪里?这样也可以表示多对多的关系吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 A(id pk, colb (ref b), col3)B(id pk, cola (ref a), col3)A(1, 1, 1), (2, 1, 1), (3, 1, 1)B(1, 2, 1), (2, 2, 1), (3, 2, 1)A的第二条记录对应有三条B的记录B的第1条记录对应A的三条记录 错是不错但是问题是会造成数据的冗余 会抽出很多相同的数据每次都要用distinct 不建议这样设计 对于这样的数据库设计,不仅有数据冗余,还易出现NULL值。应该是不满足关系数据库设计范式要求的。比如A(id pk, colb (ref b), col3)B(id pk, cola (ref a), col3)如果要对A插入数据,则必须要B中有相应的数据项,否则A.colb只能是NULL一般来说表示多对多的关系要用三张表A(id pk, col2)B(id pk, col2)C(id pk_A, id pk_B)具体的建议去看下关系数据库设计的基本范式 如果要对A插入数据,则必须要B中有相应的数据项,否则A.colb只能是NULL这是个问题,但不是多对多的问题,任何一个有外键的表都有这个问题。一般来说表示多对多的关系要用三张表我不要一般说来,是就是不是就不是,如果是出现数据冗余,请用有意义的数据清晰的表述出来。 倒,还没有见过这样设计的,2表的键互为主外键..这样还要主外键做什么....你先把ER图画出来...ER图都画好了,就容易设计表间关系了 这个怎么操作插入和删除,用null倒一下? 在plsql developer中如何给表设一个自增主键 Pro*C如何在一个进程中,连接两个数据库啊 ORA-00600错误 备份与恢复oracle数据库的方法与步骤? 条件选择的问题 高分求助 想在ORACLE 8.1.7中建一个表 FAX,用下面的语句为什么不行? SQL语句如何返回表中第n行到第m行之间的记录? 关于Unix Cron 和Oracle的问题 aix4.3.3上装的oracle9.0.1的奇怪问题 数据的转移 oracle 数据库导入导出的版本兼容性问题?
B(id pk, cola (ref a), col3)A(1, 1, 1), (2, 1, 1), (3, 1, 1)
B(1, 2, 1), (2, 2, 1), (3, 2, 1)A的第二条记录对应有三条B的记录
B的第1条记录对应A的三条记录
每次都要用distinct 不建议这样设计
比如
A(id pk, colb (ref b), col3)
B(id pk, cola (ref a), col3)
如果要对A插入数据,则必须要B中有相应的数据项,否则A.colb只能是NULL
一般来说表示多对多的关系要用三张表
A(id pk, col2)
B(id pk, col2)
C(id pk_A, id pk_B)
具体的建议去看下关系数据库设计的基本范式
如果要对A插入数据,则必须要B中有相应的数据项,否则A.colb只能是NULL
这是个问题,但不是多对多的问题,任何一个有外键的表都有这个问题。
一般来说表示多对多的关系要用三张表
我不要一般说来,是就是不是就不是,如果是出现数据冗余,请用有意义的数据清晰的表述出来。
你先把ER图画出来...ER图都画好了,就容易设计表间关系了