我正在创建一个数据库来存储Magic the Gathering卡。
的设计,我想我应该用情况如下:MySQL检查数据库是否规范化和功能化
完全IMG:http://portolivre.net.br/imgs/MTGdb.png
为了帮助你们了解什么是需要在这个数据库:
每卡可以出现在多个版本中,当它改变版本时可以改变:每个版本中的稀有性,艺术家和卡号。
每张卡片可以有一种或多种类型。
每张卡都可以有子类型(不是必需的)。
马克也依赖卡和版本。
现在,我怀疑我的东西:
这是正确归?
可以保留一些没有任何主键的表吗? (cardSets,cardType和cardSub)
考虑到当我需要卡信息时,我需要检查每张表,我应该学习哪些视图并使用它们?
也有基本的土地,女巫会出现不止一次在同一个版本,即任何版本可以有4个不同的森林,他们将拥有一切完全相同(包括卡号),只有在艺术家不同。
我应该创建一个地表并用它代替卡表来处理这种情况,还是应该在卡表中添加4次Forest?
谢谢大家=)
如果您使用innodb作为存储,您应该创建一个PRIMARY键或UNIQUE键。如果你在innodb中没有创建PRIMARY键或UNIQUE键,那么我在mysql中发现了一些麻烦的代码。检查这个http://dba.stackexchange.com/questions/48072/why-does-mysql-ignore-the -index偶数上力换此阶由/ 48184#48184 –