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
Таким образом, вы сохраняете свою базу данных нормализованной, и каждая сущность имеет свою собственную таблицу без нескольких значений в поле.