父级和子级或扁平结构 - 都标准化了吗?

问题描述 投票:0回答:1

我正在设计一个记录产品库存交易的系统。某些产品类型需要按序列号记录项目以便可追溯,某些产品类型不对项目进行序列化。

在记录股票交易时,我可以看到以两种方式设计:1)由父级记录,然后在需要时链接到子表以获取序列号,或 2)由最细粒度的实体(父级本身或父级)记录父级和系列组合。

下面是一张阐明结构的图片。我想知道一个是否正常,另一个是否正常,或者它们是否都正常,这是一个基于系统和用户需求的偏好问题。

enter image description here

database-design rdbms
1个回答
0
投票

删除“串行捆绑id”的概念,并使用交易id作为外键:

create table transaction (
  id int primary key,
  product_id int not null references product,
  quantity int not null
);

create table serial (
  id int primary key,
  transaction_id int not null references transaction,
  quantity int not null
)

请注意,最佳做法是为所有表简单命名主键

id
。我们不会在其他列前添加表名称前缀,例如
transaction_quantity
,id 列也不例外。

© www.soinside.com 2019 - 2024. All rights reserved.