クライアントが接続して「プレイ」できるカードゲーム用のJavaベースのサーバーを作成しています。各「ゲーム」(Java クラス) には、104 枚のカードのデッキ (通常のデッキの 2 倍) があります。取得した基本クラスは、Game、Deck、Card です。ゲームには 1 つのデッキがあり、デッキには最大 104 枚のカードがあります。Hibernate と PostgreSQL データベースを使用してサーバーの基本構造を作成しました。ここでの問題は、データベースをモデル化する方法です。
カードは 52 枚しかないため、「デッキ」テーブルの各デッキに52 枚のカードを作成しても意味がありません。ただし、デッキをシャッフルする必要があります。これを行うためのスマートな方法があると思いますが、データベース モデリングは私の得意分野ではありません。
頭のてっぺんに、カードごとに 1 行、52 行のテーブル「カード」を 1 つ持つことができると思います。次に、ゲームが作成されるたびに行を作成し、Card テーブルで各カードの ID を 2 回参照する番号 (104 個の番号) のリストを保持する別のテーブル「Deck」。それは良い考えのように聞こえますか?そして、Java と Hibernate でこれを達成するにはどうすればよいでしょうか?
または、これを行う必要がある他の方法はありますか?多くのカード ゲームがあるため、これは以前に 100 万回行われており、これを解決するためのベスト プラクティスがいくつかあると思いますが、見つけることができませんでした。この件に関するご意見をいただければ幸いです。事前に、ありがとう!
編集:私は問題を考えすぎていて、Hibernate を使用してデータベースにデッキを挿入し、残りはデータベースに任せるべきですか?