Thread: MySQL (F.A.Q.)
View Single Post
Old 28/01/2014, 01:33 PM   #26
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,463
Reputation: 131
Default Re: MySQL (F.A.Q.)

Quote:
Originally Posted by Makar93 View Post
На сервере есть система достижений, их 45, сейчас они выглядят как столбцы вида achiv1, achiv2 ... achiv45, значения разные от отрицательных чисел до положительных, по дефолту нулевые, хранят в себе "прогресс" достижений игрока. Помимо этих столбцов есть еще около 40 других, для сохранения другой инфы о игроке.
Выносим достижения в отдельную таблицу, а связку делаем через промежуточную.
  • achievement: id, name, ...
  • user: id, ...
  • achievement_to_user: user_id, achievement_id, progress
    И создай ключ по двум полям (user_id, achievement_id) UNIQUE
Связь будем по принципу многие ко многим. С дополнительным параметром прогресса.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote