最近,我被要求检查数据库结构,并提出可能更专业地描述数据库的更改。我正在查看表格脚本,并遇到了开发人员创建的表格,但以非常奇怪的方式(至少对我而言)。他没有创建任何ID列来唯一标识记录,而是将name
列用作PK,并在子表中对其进行引用,这对我来说很奇怪,因为我以前从未使用过这种做法。
这里是数据库的结构:
CREATE TABLE egc_manufacturer
(
manufacturer_part_number varchar(500) not null,
manufacturer_number varchar(500) not null,
manufacturer_name varchar(500) default null,
supplier_contact varchar(200) default null,
supplier varchar(50) default null,
insertion_timestamp timestamp(0) default current_timestamp,
cmrt_supplier_contact varchar(200) default null,
primary key (manufacturer_part_number, manufacturer_number)
);
我强调要添加列ManufacturerID
并将其用作主键,并将其用作子表中的外键,因为这对我来说似乎是更专业的方法。
我只是想知道我的建议是否真的会对设计产生一些影响,即使不提高性能?我应该要求他们更改桌子设计还是顺其自然?希望有人可以解释。
制造商与零件号之间可能存在多对多关系。因此,对于我来说,这看起来像一个联接表,它解决了多个制造商具有相同零件编号的问题。从某种意义上来说,Manufacturer_number是制造商ID。我希望Manufacturer_number是另一个表中的PK,跟踪每个制造商的详细信息。
长话短说,如果上述内容实际上是该表的目的,我认为不会有问题。