mysql - 关于我的 Deck Builder 数据库的建议

标签 mysql sql database database-design

我正在为一款在线纸牌游戏(有点像《炉石传说》)开发牌组构建器,并且正在寻求有关如何处理数据库的建议。

快速总结一下:每张卡牌都可以是普通/不常见/稀有/传奇/无限

我是否应该创建一个名为cards的表,在其中添加一列rarity (VARCHAR),我将在其中写入常见/不常见/稀有/传奇/像这样的每张卡都是无限的?

card -> id, name, class, type, rarity (VARCHAR), cost, attack, defense

或者我应该创建两个表,一个名为cards,其中包含稀有度(INT),另一个表名为rarity,其中列出了所有稀有度和像这样在我的卡片表中使用他们的id

card -> id, name, class, type, rarity (INT), cost, attack, defense
rarity -> id, name

此外,这些选项中的任何一个都更适合多语言目的还是基本上相同? (我以前从未自己创建过多语言网站,所以如果这是一个愚蠢的问题,我很抱歉)

感谢您的阅读:)

最佳答案

考虑到扁平结构速度更快,而你的第二个选择并没有真正做任何事情,所以选择第一个。

也就是说,你可以尝试:

card -> id, name, class, type, cost, attack, defense
rarity -> id, name
Card_rarity --> card_id, rarity_id

关于mysql - 关于我的 Deck Builder 数据库的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41284620/

相关文章:

mysql - 使用子查询的平均值

mysql - PHP、PDO SQL 查询两次之间然后每小时拆分

SQL Server 随机数生成器不是随机的

mysql - 哪种 MySQL 数据类型用于调度?

php - 帮助我在 Mysql 中创建巨大的数据库

mysql - MySQL 中不同的 ROUNDED 结果

php - MySql 自动完成查询 - 对于多个单词

mysql - 在 SQL 中更新或插入高分

mysql - SQL查询多个日期到一个日期

android - 如何在android程序中读取excel表