Sql 关于将数据插入1:m关系的表部分的问题

Sql 关于将数据插入1:m关系的表部分的问题,sql,database-design,Sql,Database Design,将记录插入到与另一个表具有1:m关系的数据库表时,最好的做法不是确保使用新记录更新(插入)相关表吗?如果只更新一个相关表,是否会产生任何后果 此外,如果我更新关系m侧的表(例如,汽车和车轮的关系,其中一辆汽车可以有多个车轮,但一个车轮只能属于一辆汽车),我是否应该始终将外键作为显式参数插入?例如,如果另一个相关表的PK系统为1、2、3、4、5,并且以唯一的方式递增,我是否应该通过存储过程将外键值作为值插入 编辑:这听起来很奇怪,但不幸的是,我只通过自学(没有正式培训)学习了/学习了数据库设计和S

将记录插入到与另一个表具有1:m关系的数据库表时,最好的做法不是确保使用新记录更新(插入)相关表吗?如果只更新一个相关表,是否会产生任何后果

此外,如果我更新关系m侧的表(例如,汽车和车轮的关系,其中一辆汽车可以有多个车轮,但一个车轮只能属于一辆汽车),我是否应该始终将外键作为显式参数插入?例如,如果另一个相关表的PK系统为1、2、3、4、5,并且以唯一的方式递增,我是否应该通过存储过程将外键值作为值插入


编辑:这听起来很奇怪,但不幸的是,我只通过自学(没有正式培训)学习了/学习了数据库设计和Sql Server

car:
    car_id
    name

wheel:
    wheel_id
    car_id
如果您的第一个问题是,当您将记录插入
wheel
表时,是否应确保
car
表中有相应的行,则是!实际上,如果使用外键正确设置了RDBMS,那么如果
car
中没有父行,您将无法在
wheel
表中插入行


我想这也可以解决你的第二个问题。如果没有,您能详细说明一下吗?

当您有一对多关系时,必须先将记录插入父表。在插入父表时,您可能需要也可能不需要插入子表。这完全取决于您的设计以及插入初始记录时可用的信息。例如,客户和订单有一对多的关系。但客户可能会在实际购买任何东西之前添加,因此不会有订单。或者,新客户可能正试图购买一些东西,需要存储他/她的客户信息和订单。您应该在设置datanbase结构时设置promary键/外键关系。这将确保您永远不会有没有关联客户的订单。在订单表中,您将为Customer表中的id字段添加一列。当您插入记录时,该值将与其他信息一样成为插入的一部分


如果更新父表或子表,则不需要更新其他表,除非更改具有PK.FK关系的字段。但最好不要更改此值(主键应该是几乎不需要更改的。如果要使用诸如名称之类的内容作为主键,则需要重新考虑您的设计。)

您好,这也解决了我的第二个问题!:)我想知道的是,在一个大型数据库模式中,可以有相关的表,但不能提供填充每个表的详细信息。例如,一个产品可以有注释(因此是一种关系),但是一个产品可以不添加注释(例如Amazon)。通过注释,您指的是类似于用户评论的东西吗?如果是这样的话,那么是的,当然有可能(并且在许多情况下是适当的)有一个没有子项的父记录。