我正在为纸牌游戏创建一个基于 Java 的服务器,客户端可以在其中连接以进行“游戏”。每个“游戏”(Java 类)拥有一副 104 张牌(普通牌乘以 2)。所以我得到的基本课程是:游戏,甲板,卡片。一个游戏只有一个牌组,一个牌组最多有 104 张牌。我已经使用 Hibernate 和 PostgreSQL 数据库为服务器制作了基本结构。我的问题是如何为数据库建模。
由于只有 52 张不同的牌,因此在“牌组”表中为每个牌组制作 52 张牌是没有意义的。但是,甲板需要洗牌。我想有一些聪明的方法可以做到这一点,但数据库建模不是我的强项。
在我的脑海中,我想我可以有一张桌子“卡片”,有 52 行,每张卡片一行。然后是另一个表“Deck”,它将在每次创建游戏时创建一行,并包含一个数字列表(104 个数字),该列表在卡片表中两次引用每张卡片的 ID。这听起来像是个好主意吗?以及如何使用 Java 和 Hibernate 来实现这一点?
或者还有其他方法应该这样做吗?由于有很多纸牌游戏,我猜这已经做过一百万次了,并且有一些解决这个问题的最佳实践,但我无法找到它。我将不胜感激有关此事的任何意见。提前,谢谢!
编辑:我是不是想多了这个问题,应该只使用 Hibernate 将一个 Deck 插入数据库,让数据库处理其余的事情?