SQL:卡的良好数据库设计?

时间:2017-05-31 14:03:42

标签: sql database sqlite

这是关于SQL或SQLite的模型设计的问题。

假设您有一些纸牌游戏,其中有许多可重复使用的牌,并且玩家可以从这些牌中取出牌组(例如MtG)

当然,您不希望为用户可能创建的每个套牌创建新的卡片实例。这将有很多冗余。

因此应该有一个"主人"卡(包含所有相关信息)。

那么我的问题是,如何最好地整合给定套牌中的牌(及其数量)?

(我实际上并没有创建这个数据库,它只是强调了一个用户拥有来自某些普通股的不同数量的多个项目的任意数量集合的设计。)

2 个答案:

答案 0 :(得分:2)

有三张桌子:一张桌子上有卡片上的数据(名称,费用等)。另一张桌子有甲板(甲板名称,创建者等)。另一张桌子上有牌(deck_cards)(将card_id连接到deck_id和数量)。

编辑:附录:这与所有数据库设计引物中使用的经典首选示例(产品,订单和订单行项目)的设置(和基本原理)相同。唯一缺少的是"客户" (如果你想将甲板连接到玩家或甲板建造者,可以添加它。)

答案 1 :(得分:0)

我会想象:

卡片 - 包含卡片详情的表格

Card_ID    Card_Name    Card_Dmg   Card_Attribute   Card_Health
   123      Fire Mage     20            Fire             100
   345      Water Man      6            Water            200
   037      Earth Dwarf   10            Earth            150

玩家 - 包含玩家详细信息的表

Player_ID     Player_ForeName     Player_Surname
    1             Fred               Smith

Player_Cards - 详细说明球员牌组的表格,每张牌都有一个新行,例如:

Player_ID     Card_ID
   1            123
   1            345
   1            037