Здравствуйте, по своей специальности являюсь графическим дизайнером, решил немного расширить свой кругозор и выучить php/mysql. Что бы учиться на практике я поставил себе задачу разработать полный технический клон мобильной браузерной игры (ahero.ru). И уже на этапе проектировки БД возникло ощущение что я делаю что-то не так.
Вкратце изложу суть своей БД:
В игру играют пользователи (таблица: users), у каждого пользователя есть несколько персонажей(таблица: userchars), всего в игре их 12(таблица: chars), персонажи открываются по мере прохождения игры. В любой момент времени в отряде пользователя может быть не более трёх персонажей (отряд - активные персонажи, непосредственно участвующие в боях. За нахождение открытого персонажа в отряде отвечает поле active в таблице userchars).
У каждого пользователя имеется свой инвентарь (таблица useritems), предметы из которого могут быть надеты на персонажей пользователя (за предметы надетые на персонажа отвечает таблица charitems. В игре имеется 4 вида предметов - шлем, оружие, амулет и кольцо, т.е. на персонажа может быть надето макс. 4 предмета разных видов.). Таблица items - "база" всех имеющихся в игре предметов.
Таблицы items и chars - статичны.
Наглядно посмотреть на всё это действо можно перейдя по
ссылке.
И в общем - вопрос: нормально ли спроектирована данная часть бд? В основном из-за связи items - useritems - charitems не комфортно себя чувствую.
Заранее спасибо :)
P.S.: Извините за типы данных у полей таблиц (мне так удобней), и за отсутствие наглядных связей "один ко многим" (Проектировал в navicat, а там какая-то проблема со связями. Имеется лишь "один к одному")