gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 10:02:31 24 4
gpt4 key购买 nike

我需要设计某些表格的帮助,并且想知道这是否是正确的方法。

假设我有一个名为categories的主表,其中存储产品类别列表。

还有另一个表product_categories,它已经使用product表存储FK。我们还应该为类别设置 FK 吗?这有什么好处和坏处。这里需要数据库专业知识。

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关系吗?

最佳答案

是的,您应该将 product_categoriescategory varchar(255) 列替换为类别表的外键。否则,您最终会得到两个不同的存储类别名称的位置,从而导致不一致。

Do we need to use @ElementCollection or @OneToMany relationship?

ElementCollection 用于简单或嵌入类型的集合。不适用于实体之间的关联。

OneToMany 用于...一对多关联。但这里很可能存在多对多关联:一个产品属于多个类别,一个类别包含多个产品。所以你需要...ManyToMany。

如果您确实有一对多关联(即一个产品属于一个类别,一个类别包含多个产品),那么您可能不需要该连接表:产品应该知道它的类别属于,因此您应该在产品表中有一个类别 ID 外键(以及双向一对多关联)。

关于mysql - 需要数据库设计指南方面的专业知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52620590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com