Я работаю над сайтом, где пользователь может выбрать определенные даты, которые относятся к ним, например, Дата 1, Дата 2, Дата 3 и т. Д.
Каждая дата будет иметь определенные вопросы, относящиеся к ней, поэтому, если клиент отметит «Дата 1», чтобы указать, что эта дата относится к нему, он увидит группу текстовых полей, спрашивающих его о дате 1 и как она применяется. им. То же самое касается всех других дат.
Дата 1 и 2 и несколько вопросов, но у оставшихся дат только 1 вопрос.
Эти даты и их ответы будут позже использованы для создания персонализированных напоминаний для клиента и отправки ему.
Мне бы также хотелось, чтобы дизайн, который упрощает (или максимально упрощает) добавление дополнительных дат и полей.
Мой вопрос: как лучше всего хранить в базе данных все даты и их ответы, относящиеся к пользователю? Я думал, что в таблице user
у меня есть столбцы boolean
от Дата 1 - Последняя дата (очевидно, они на самом деле не назвали дату 1, дату 2 и т. Д.). Если для столбца «Дата 1» задано значение «0», это означает, что клиент не отмечал этот флажок, а если значение «1», то это означает, что он это сделал и ответил на вопросы.
Что касается фактического хранения дат, я рассматриваю следующие два варианта:
1) 1 таблица для каждой даты, со столбцами для каждого вопроса, задаваемого для этой даты, и столбец user_id
. Поэтому в таблице Date_1
будут столбцы типа Q1_name
, Q2_name
и ответы на вопросы, которые задал пользователь.
Но я хочу что-то более элегантное, потому что 1) будет сложно получить ответы на все вопросы пользователя при расчете какой информации. относится к ним при отправке персонализированных писем. 2) У некоторых дат есть только 1 вопрос, поэтому было бы некрасиво создавать для них полноценную таблицу.
2) A user_answer
таблица с колонками:
user_id,date_name,question_name,answer_val
2 пока кажется самым элегантным, но должно быть лучшее решение. Есть мысли?