2013-12-16 3 views
0

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

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

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

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

+2

не хранить несколько частей данных в одном поле. Это отрицает цель использования реляционной базы данных и, как правило, приводит к массово мучительно уродливому кодированию, чтобы справиться с плохим дизайном в будущем. Читайте на [нормализации базы данных] (http://en.wikipedia.org/wiki/Database_normalization) –

+0

сделал некоторое чтение, как насчет третьей таблицы, которая связывает пользователей с выбранными игроками – Matt

ответ

0

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

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

Смежные вопросы