数据库设计 数据库设计,两张表,表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倒一下? 急!!!改ip后,出现协议适配器不可加载的错误,但是配置文件使用的是host名,不解为什么会出现这个错误,请高人解答 游标接受数组变量 使用过PL/SQL连接数据库时报没有监听错误 这样的字段值应该怎么算呢 有ORACLE的简明教程,和,存储过程的简明教程,可以让我看看呀? 高手们,请教一个算法 请问:忘记OEM的SYSMAN的密码该如何解决. 我想要一个Oracle9i Provider for OLE DB Version 9.0.1.0.1 各位大侠帮帮忙吧————快快请大家进来 初学者请教一个简单的SQL 数据的转移 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图都画好了,就容易设计表间关系了