Я работаю над создателем колоды для онлайн-карточной игры (вроде как Heartstone), и я ищу советы о том, как я должен обрабатывать свою базу данных.Советы по моей базе данных Deck Builder
Резюмировать это быстро: каждая карта может быть общая/необычная/редкая/легендарная/бесконечная.
Должен ли я создать одну таблицу под названием карты, в котором я добавить столбец редкость (VARCHAR) где я буду писать общий/незаурядное/редкий/легендарную/бесконечное для каждой карты, как это?
card -> id, name, class, type, rarity (VARCHAR), cost, attack, defense
Или я должен создать две таблицы, одна называется карточки с редкости (INT) и другую таблицу под названием редкость, где я перечисляю все редкости и использовать их идентификатор в моих карт таблицы как это ?
card -> id, name, class, type, rarity (INT), cost, attack, defense
rarity -> id, name
Кроме того, будет ли любой из этих вариантов лучше для многоязычных целей или это в основном то же самое? (Я никогда не создал многоязычный сайт на мой собственный раньше, поэтому я прошу прощения, если это глупый вопрос)
Спасибо за чтение :)
Итак, ваше решение будет быстрее, чем второе, указанное мной, хотя есть дополнительная вкладка? Кроме того, существуют и другие факторы (такие как класс, тип существ и т. Д.), Чтобы это означало, что у меня было бы еще 2 таблицы для каждого фактора? – Tokipudi
@Tokipudi Нет, первая, плоская структура быстрее. Нормализованный подход лучше подходит для целостности данных. Взгляните на [this] (http://sqlmag.com/database-performance-tuning/sql-design-why-you-need-database-normalization), чтобы по какой-то причине нормализовать – JohnHC
Согласно этой статье (и связанный с ним наверху), хотя квартира быстрее, она недостаточно «надежна» и не должна использоваться часто. Поэтому я буду больше смотреть на то, как вы описали, спасибо. – Tokipudi