Организация сохранения данных (БД MySQL + файлы)

serverok

Новичок
Организация сохранения данных (БД MySQL + файлы)

Итак хочу спросить All. Есть такая задача: написать скрипт регистрации пользователей на одном сайте. При регистрации есть обязательные поля: ФИО, e-mail, пароль. И в скрипте, оговорено заказчиком, должна присутствовать фича дополнительных вопросов при регистрации. Причем сами вопросы и их количество может меняться.

Так вот, хочу организовать хранение данных так: "статические" данные: ФИО, e-mail, пароль + ключ хранить в БД (по ним еще будет базироваться поиск), а "изменяемые" (я их так назвал) данные вместе с вопросом, который задавался (ведь вопросы и их количество может меняться), будут храниться в простом текстовом файле (один для всех пользователей) или файлах (каждый для отдельного пользователя).

Как Вы думаете, такой подход будет нормальным?
 

Dreammaker

***=Ф=***
таблица user
id login password

таблица answers
id user_id question_id answers

таблица question
id question

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

Этот вариант более правилен с идеологической точки зрения:), чем хранить данные в одном поле...
 

SiMM

Новичок
Dreammaker, если предлагается выбрать ответ из вариантов (а не ввести его ручками), то наверно всё же
таблица answers
id user_id variant_id (или всё же стоит добавить question_id?)
+ таблица variants
id question_id variant
 

Dreammaker

***=Ф=***
SiMM, в принципе, да. Для выбора вариантов, например из выпадающего списка, такой вариант лучше.

Ещё можно добавить в таблицу вариант поле r_variant для обозначения правильно ответа из выбранного из вариантов в списке, естественно, если такое требуется.
 

serverok

Новичок
Dreammaker
SiMM
Я понимаю, что можно под вопросы и ответы отвести в БД таблицу (или таблицы и связать их через id вопроса). Но это, если вопросы "статические".

например, берем такой вариант:
вопос id=3 был "Какой Ваш любимый цвет?", ну и в БД заносятся ответы пользователей на этот вопрос. А тпереь, заказчик меняет этот вопрос на, напрмер, "Какой у вас домашний зверек?" (ведь такая фича оговорена, читайте мой первый пост. Тоесть количество вопросов может меняться и сами вопросы). И теперь у нас получится такое: пользователи, которые зарегистрировались, до изменения вопроса ответили одно, а те кто регистрировался после изменения вопроса, ответили совсем другое...

В общем смысл ясен?

Я решил сохранять в таблице не только ответы но и вопросы на какие были даны ответы. Типа:
<-----------begin--------------->
красный||какой ваш любимый цвет?\r\n
форд сиерра||какой у вас автомобиль\r\n
<-----------end----------------->
И в любой момент эту запись я могу разложить на все ее элементы.
 

SiMM

Новичок
> А тпереь, заказчик меняет этот вопрос на, напрмер, "Какой у вас домашний зверек?"
Ну и? Это уже ДРУГОЙ вопрос с ДРУГИМ id
PHP FAQ: MySQL. FAQ. ID.
PS: одно дело - исправить синтаксическую ошибку в вопросе - и совершенно другое изменить в корне его смысл.
 

serverok

Новичок
SiMM
Какой другой вопрос: он отредактировал вопрос с id=3 и все. Тоесть мы делаем update записи и id не меняем - заказчик изменил вопрос, а не добавил новый.

>PS: одно дело - исправить синтаксическую ошибку в вопросе - и совершенно другое изменить в корне его смысл.

В этом то и весь смысл заказа... Каким бы идиотским он не был... Должна быть возможность добавлять/удалять дополнительные вопросы, а также изменять сами вопросы.
 
Сверху