Database design 数据库设计方法决策

Database design 数据库设计方法决策,database-design,Database Design,我正在设计一个数据库,保存有关车辆的信息。我有一个名为Vehicles的主表,其中存储了主要信息,如VehicleType、FuelType等。但是,关于每辆车,应该考虑更多的细节,例如每辆车的功能,如CDplayer、天窗等。问题是我应该把所有的主要和辅助信息都包含在一个表中,因为它几乎有70个字段,所以很混乱,还是把它们分成两个表比较好。既然这两个表之间存在一对一的关系,那么做出这样的决定是否合乎逻辑?考虑到性能因素,它是否有效? 抱歉,如果我不能让它更简洁。这更多是基于特性及其属性的对象模

我正在设计一个数据库,保存有关车辆的信息。我有一个名为Vehicles的主表,其中存储了主要信息,如VehicleType、FuelType等。但是,关于每辆车,应该考虑更多的细节,例如每辆车的功能,如CDplayer、天窗等。问题是我应该把所有的主要和辅助信息都包含在一个表中,因为它几乎有70个字段,所以很混乱,还是把它们分成两个表比较好。既然这两个表之间存在一对一的关系,那么做出这样的决定是否合乎逻辑?考虑到性能因素,它是否有效?
抱歉,如果我不能让它更简洁。

这更多是基于特性及其属性的对象模型的外观。如果您不想将多个属性组合到一个特征/元素,那么可以使用一个表。否则最好将其分解为多个


你看到CDPlayer或天窗有自己的多个属性吗?否则,您可以将此单一属性作为同一主表的一部分

除非必须这样做,否则不要对表进行垂直分区


即使您的表有许多列,这也适用。但是,许多列可能(但不一定)表明您的设计中存在其他问题。

我阅读了您提供的具体原因,并注意到我的案例实际上是“1:0或1”关系。这是否使分裂成为一种合乎逻辑的行动?还是还有一些因素需要考虑?@Metti是的,对于“1:0..1”,您可能应该分成两个表。另一种可能是在表的“可选”部分有一堆空值,但这不应该是您的第一选择。你可能对我感兴趣。