gpt4 book ai didi

java - 枚举集 JPA 2.0

转载 作者:行者123 更新时间:2023-11-29 06:05:13 25 4
gpt4 key购买 nike

请查看我之前的问题以了解背景信息。

List of enum vs. class of booleans

但是,我的问题是枚举集如何与 JPA 2.0 和数据库一起使用。由于我可能会将值保存为字符串(因为我不希望有丢失映射的风险),因此与 bool 类相比,集合中包含 > 20 个枚举的枚举集可能是一种非常无效的存储数据的方法。

考虑具有不同角色的用户表:

user | password | role (enum)
adm 1223 admin, guest, www, lab, elevator, ap, // Might be more than > 20
sam 0000 admin

......

我应该选择什么?你有什么想法吗?

最好的问候

最佳答案

上面的数据库设计不应该如何存储用户的角色。它没有标准化(因为单列中有多个值),因此很难查询。例如,您如何进行查询来了解具有 guestap 角色的所有用户?

将设计更改为类似的内容:

user table : id, name, passord
role table: id, name
user_role join table: user_id, role_id

在 JPA 术语中,您只需拥有一个 User 实体、一个 Role 实体以及这些实体之间的 ManyToMany 关联:一个用户拥有0个、1个或多个角色,一个角色由0个、1个或多个用户持有。

关于java - 枚举集 JPA 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11771993/

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