gpt4 book ai didi

mysql - 将扑克牌的事件存储在数据库中

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

我正在尝试用 C++ 编写一个程序来分析扑克手牌。我希望您使用 SQL 来存储有关牌局、玩家和 session 的数据。

我很清楚我想在我的 session 和玩家表中存储什么,但是手牌表有点棘手。

一手牌需要包含所有玩家的姓名、他们的手牌(如果显示)、他们的筹码、日期、赌注等。问题在于保存事件。一个 6 人的手牌可以像 fold-fold-fold-fold-raise、4$-fold 一样简单,但它可能会更长。

我能想到的唯一方法是创建一个名为“事件”的列并将操作存储为字符串“F-F-F-F-R,4-F”。

必须有更好、更优雅的方式来做到这一点吗?

最佳答案

在单行中存储一系列事件违反了第一范式,被认为是不好的做法。

因此,与其将整个事件序列存储在单行中,不如将一系列行存储在另一个表中(John Bustos 建议使用“bets”,但您建议的列名称“Events”可能会很好表名)与之关联。每个事件都将包含它所属的手的标识符,一个用于排序事件的序列号。这两列将构成该表的主键。然后,您可以用一列来存储事件的类型(ENUM 可能对此很有用),并为某些事件存储额外的数据,例如金额。

要列出查询中的所有事件,您可以生成多行,每个事件一行。或者您有一个子查询将所有这些行转换为文本,然后您可以使用 GROUP_CONCAT 将其聚合为一个字符串。

关于mysql - 将扑克牌的事件存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14488249/

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