Консультация № 190539
08.02.2017, 16:24
0.00 руб.
1 3 1
Здравствуйте! У меня возникли сложности с таким вопросом:

Добрый вечер. Подскажите пожалуйста, как лучше организовать хранение данных, т.е какая структура должна быть у таблицы, для выбранных пунктов пользователем.

Например, есть электронная форма карточка, которую пользователь заполняет:

1) Раздел1:
а. Ответ1
б. Ответ2

2) Раздел2:
а. Ответ1
б. Ответ2
в. Ответ3
г. Ответ4

и так далее…
Все разделы и варианты ответов хранятся в таблицах, которая имеет структуру

Catalod (id, parent_id, title). А мне нужно создать таблиу Fact, в которой хранились бы выбранные ответы, и в дальнейшем выгрузить на страницу для редактирования данных или просмотра.

Прикрепленные файлы:
4bbead8e950cac100e19f6869a82ecb88112b3b0.png

Обсуждение

давно
Профессионал
848
1596
10.02.2017, 11:48
общий
На мой взгляд таблица Fact будет иметь 2 поля(id_card, id_catalog).
Где id_card будет номер карточки, а id_catalog это id из таблицы Catalog, позиции которые выбрали при заполнении карточки.
При формировании формы редактирования карточки номер 10 запрос будет примерно таким:

[code lang=sql]select c.*, Case When f.id_card IS NULL then 0 Else 1 End IsChecked
from Catalog c
Left Join Fact f On c.id=f.id_catalog and f.id_card=10
[/code]
Поле IsChecked будет показывать, что ответ был выбран при создании(или при последнем редактировании) карточки.
давно
Старший Модератор
312929
1973
17.02.2017, 19:52
общий
Адресаты:
Можете оформить сообщение как ответ.
давно
Профессионал
848
1596
18.02.2017, 00:38
общий
это ответ
Здравствуйте, User194586!
На мой взгляд таблица Fact будет иметь 2 поля(id_card, id_catalog).
Где id_card будет номер карточки, а id_catalog это id из таблицы Catalog, позиции которые выбрали при заполнении карточки.
При формировании формы редактирования карточки номер 10 запрос будет примерно таким:
[code lang=sql] select c.*, Case When f.id_card IS NULL then 0 Else 1 End IsChecked
from Catalog c
Left Join Fact f On c.id=f.id_catalog and f.id_card=10[/code]
Поле IsChecked будет показывать, что ответ был выбран при создании(или при последнем редактировании) карточки.
Форма ответа