需要数据库设计指南方面的专业知识

zsbz8rwp  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(297)

我需要帮助设计某些表,并想知道这是否是正确的方法。
假设我有一个名为 categories ,存储产品类别列表。
还有一张table product_categories 已将fk存储在 product table。我们是否也应该为类别设置fk?这有什么好处和坏处。这里需要db的专业知识。

create table product (
  id int,
  name varchar(255)
);

create table categories (
  id int,
  category varchar(255)
);

create table product_categories(
  id int,
  product_id int,
  category varchar(255)
  FOREIGN KEY (product_id) REFERENCES product (id)
);

我们需要使用 @ElementCollection 或者 @OneToMany 关系?

zf2sa74q

zf2sa74q1#

是的,你应该换个柱子 category varchar(255)product_categories 通过类别表的外键。否则,您将得到存储类别名称的两个不同位置,从而导致不一致。
我们需要使用@elementcollection还是@onetomany关系?
elementcollection用于简单或嵌入式类型的集合。不适用于实体之间的关联。
一个女人是为了。。。一对多关联。但这里很可能有多对多的关联:一个产品属于多个类别,而一个类别包含多个产品。所以你需要。。。很多很多。
如果你真的有一个一对多的关联(即一个产品属于一个类别,而一个类别包含多个产品),那么你可能不想要这个连接表:产品应该知道它所属的类别,因此,在产品表中应该有一个category id外键(和一个双向的一对多关联)。

相关问题