MySQL PHP Выбор и редактирование значений из базы данных

У меня есть база данных, содержащая список персонажей для игры. Пользователь должен найти 5 символов и назначить позицию для каждого выбранного символа. Этот список из 5 позиций должен быть сохранен, чтобы его можно было найти позже.

В VB.NET я просто создал файл, который содержал выбранные 5 с назначенными им позициями и считывал данные из этого.

Сейчас я пытаюсь создать веб-версию, в которой я борюсь за то, как мне сохранить данные. Большая база данных находится в таблице MySQL. Я предполагаю, что не имеет смысла создавать новую таблицу для каждого пользователя и иметь отдельные строки для своих выбранных символов? Мое мышление состоит в том, чтобы иметь одну таблицу под названием "пользователи", а затем сохранять выбранные символы в столбце с их положением, например, "player1:pos4,player56:pos302,player322:pos392" и т. Д., Затем я могу разделить значения позже.

У кого-нибудь есть более эффективные идеи о том, как подойти к этому? Я очень новичок во всем этом, спасибо!

1 ответ

Решение

Я бы создал 3 базовые таблицы: users, characters, positionsи 1 справочная таблица: usercharpos с 3 колонками: user_id, char_id, pos_id, Каждый пользователь, персонаж и позиция должны иметь уникальный идентификатор в качестве первичного ключа. Затем в usercharpos Таблица поиска Я бы связал пользователя с 5 выбранными символами и положением каждого из них. Например, у нас есть пользователь с id = 5, который выбрал несколько символов с ids = 1,2,3,4,5 и выбрал для них несколько позиций с id = 2,3,6,7,8. usercharpos станет:

user_id   char_id   pos_id
   5         1        2
   5         2        3
   5         3        6
   5         4        7
   5         5        8

Таким образом, вы сохраняете свою базу данных нормализованной, и каждая сущность имеет свою собственную таблицу без нескольких значений в поле.

Другие вопросы по тегам