Структура базы sql нужен ваш совет.

seosniks
На сайте с 13.08.2007
Offline
389
600

добрый вечер всем заглянувшим.

Проблема такая.

Есть таблица билет

поля таблицы

 `id_bilet` 

`vopros`
`otvet`

пример вопроса

продолжительность** рабочего** времени****** не** может  превышать?

ответ 1.* 40 часов в неделю
ответ 2. 46 часов в неделю
ответ 3. 30 часов в неделю

Как мне завязать варианты ответа к вопросу?

Новую табицу использовать не хотелось бы.

Ответов может быть от 2 до 8 итд.

Буду благодарен за вашу помощь.

V
На сайте с 03.12.2007
Offline
94
#1
Таблица 1: `id_bilet` `vopros`
Таблица 2: `id_otvet` `id_bilet` `otvet`

связь по id_bilet один ко многим

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#2
Новую табицу использовать не хотелось бы.

Вы сразу эти мысли отбрасывайте а. Сколько надо таблиц столько и используйте.

Две, значит две.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
seosniks
На сайте с 13.08.2007
Offline
389
#3
LEOnidUKG:
Вы сразу эти мысли отбрасывайте а. Сколько надо таблиц столько и используйте.
Две, значит две.

Да так и сделал, по другому не придумал как. :)

`bilets`

id_bilet variant_otveta

376 .Комплексная пьянка проводится:

`v_otvet`

376 1 .ежемесячно

376 2. ежеквартально

376 3. раз в 6 месяцев

376 4.ежедневно

Станислав
На сайте с 27.12.2009
Offline
258
#4
seosniks:
Да так и сделал, по другому не придумал как. :)

А по другому и не получится, точнее сделать то можно, но это будет не правильно и ограничено, можно даже сказать бредотаблица вида

таблица

айди | вопрос | ответ 1 | ответ 2 | ответ 3 | ответ 4 | и т.д.

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

Мы там, где рады нас видеть.
edka
На сайте с 17.01.2010
Offline
208
#5

Можно и одной таблицей обойтись, в php только чуть более попрограммить придется, чем , если бы две таблицы было :)

+ развивает творческое мышление :)

Если с одной таблицей, то я бы сделал так:

Берем кол-во полей с ответами исходя из билета, где это количество максимальное.

Если в билете меньше ответов, то неиспользуемые поля оставляем пустым.

При считывании загоняем в массив, пустые значения отбрасываем.

Каждый ответ (по порядковому номеру) всегда будет в массиве под одинаковым id, поэтому его вычленить будет несложно.

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

seosniks
На сайте с 13.08.2007
Offline
389
#6
edka:
Можно и одной таблицей обойтись, в php только чуть более попрограммить придется, чем , если бы две таблицы было :)
+ развивает творческое мышление :)



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

Про массивы я читал, да по такому принципу если не ошибаюсь работает доска объявлений joker 3.

Пишу скрипт который будет служить чем то типа CMS

для билетов и ответов на них, ну или по принципу тестов разных.

сейчас сделал три таблицы

можно конечно и двумя обойтись,

в первую таблицу bilets добавляются билеты

id_glava это глава в каждой главе может быть разное количество вопросов

vopros сам вопрос

var_otvet вариант ответа в каждой главе, тоетсь глава 1 имеет вопросы с первого по 115

далее идет глава 2 начинается с 1 билета итд.

id_bilet glava vopros var_otvet

114 1 114

115 1 115

116 2 1. вопрос Мероприятиям . 1

117 2 2. вопрос Метод 2

третью таблицу можно и не использовать

проще добавить рядом с каждым вопросом правильный ответ, потому как вариант ответа всего один.

добавляем ячейку и готово. :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий