在数据库中存储宾果卡号码的最佳方式是什么 table
what is the best way to store Numbers of a Bingo Card in database table
我想使用 MVC 和 EF 创建一个基于网络的宾果游戏,我想在数据库中为每张卡片存储 24 个数字作为记录,我不确定如何创建我的宾果游戏cards table,我想到的一种方法是设计一个 table,每个单元格的编号都有 24 个整数字段,当我在业务逻辑中获取记录时,我无法遍历这些数字,因为它们是在单独的字段中(实际上我可以,但我认为这种方法不是正确的方法)另一种方法是我将所有数字连接在一起并用逗号分隔并将其存储为字符串所以当我获取记录时我可以拆分逗号字符串并将所有数字都放在一个数组或其他东西中
那么这种情况的最佳解决方案是什么?
我如何设计 table 来存储宾果卡的号码?
问得好!
你说得对,将它存储在 24 个不同的整数字段中绝对是一个糟糕的方法。用逗号连接它们似乎是一个合理的妥协,但它是不灵活的,因为您将它们视为文本,而不是整数,所以稍后如果您想要 运行 查询,例如 SELECT MAX(CardNumber) FROM BingoCardNumbers WHERE CardID = 1
你不能'不要做那样的事。
我的建议是有两个不同的 table,BingoCards
和 BingoCardNumbers
。 BingoCards
table 会有一个 CardID
,以及与卡片相关的其他信息,例如卡片属于谁,所以也许你想要一个 UserID
专栏也在那里。此 table.
中未存储任何卡号
然后,在 BingoCardNumbers
table 中,将有三列,CardID
,这是来自第一个 table、[=19= 的主键](1-24,这是卡中数字的索引),最后是CardNumber
,这是实际数字本身。然后,如果你想获得一张特定卡片的所有号码,你可以简单地做:
SELECT CardNumber FROM BingoCardNumbers WHERE CardID = 1 ORDER BY NumberIndex
我想使用 MVC 和 EF 创建一个基于网络的宾果游戏,我想在数据库中为每张卡片存储 24 个数字作为记录,我不确定如何创建我的宾果游戏cards table,我想到的一种方法是设计一个 table,每个单元格的编号都有 24 个整数字段,当我在业务逻辑中获取记录时,我无法遍历这些数字,因为它们是在单独的字段中(实际上我可以,但我认为这种方法不是正确的方法)另一种方法是我将所有数字连接在一起并用逗号分隔并将其存储为字符串所以当我获取记录时我可以拆分逗号字符串并将所有数字都放在一个数组或其他东西中 那么这种情况的最佳解决方案是什么? 我如何设计 table 来存储宾果卡的号码?
问得好!
你说得对,将它存储在 24 个不同的整数字段中绝对是一个糟糕的方法。用逗号连接它们似乎是一个合理的妥协,但它是不灵活的,因为您将它们视为文本,而不是整数,所以稍后如果您想要 运行 查询,例如 SELECT MAX(CardNumber) FROM BingoCardNumbers WHERE CardID = 1
你不能'不要做那样的事。
我的建议是有两个不同的 table,BingoCards
和 BingoCardNumbers
。 BingoCards
table 会有一个 CardID
,以及与卡片相关的其他信息,例如卡片属于谁,所以也许你想要一个 UserID
专栏也在那里。此 table.
然后,在 BingoCardNumbers
table 中,将有三列,CardID
,这是来自第一个 table、[=19= 的主键](1-24,这是卡中数字的索引),最后是CardNumber
,这是实际数字本身。然后,如果你想获得一张特定卡片的所有号码,你可以简单地做:
SELECT CardNumber FROM BingoCardNumbers WHERE CardID = 1 ORDER BY NumberIndex