Я новичок в MySQL и только что узнал о важности нормализации данных. Моя база данных имеет простую структуру:Нормализация данных MySQL
У меня есть 1 стол под названием users
с полями:
userName (string)
userEmail (string)
password (string)
requests (an array of dictionaries in JSON string format)
data (another array of dictionaries in JSON string format)
deviceID (string)
Прямо сейчас, это моя структура. Будучи очень новым для MySQL, я действительно не понимаю, почему моя структура выше - плохая идея? Зачем мне это нужно для нормализации и создания отдельных таблиц? Это первый вопрос - почему? (Некоторые также заявили, что не ставят JSON в мой стол. Почему или почему нет?)
Второй вопрос: как? С указанной структурой, сколько таблиц должно быть у меня, и что будет в каждой таблице?
Редактировать: Так что, возможно, нормализация здесь не является абсолютно необходимой, но, возможно, есть лучший способ реализовать мое поле данных? Поле data
представляет собой массив словарей: каждый словарь - это всего лишь элемент заметки с несколькими ключами (название, автор, дата, тело). Итак, что я делаю сейчас, я думаю, что это может быть неэффективным, каждый раз, когда пользователь создает новую заметку, я отправляю эту заметку из моего приложения в PHP для обработки. Я получаю массив словарей JSON, уже являющийся частью данных этого пользователя, я конвертирую его в массив PHP, затем добавляю в конец этого массива новую заметку, конвертирую все это в JSON и возвращаю обратно в таблицу как набор словарей. И этот процесс повторяется каждый раз при составлении новой заметки. Есть лучший способ сделать это? Возможно, данные пользователя должны быть таблицей, причем каждая строка является запиской, но я не совсем уверен, как это будет работать?
Как вы используете данные JSON? –
Это приложение для заметок iPhone. Данные - это всего лишь массив примечаний пользователя в формате JSON. – Snowman