powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как организовать базу
6 сообщений из 6, страница 1 из 1
Как организовать базу
    #36073619
Gnom4ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем жителям форума. Поставили задачку написать программку проверки знаний. Исходные данные: есть отделы, в этих отделах есть подотделы, в подотделах есть специальности(предполагается все в отдельных таблицах). И с другой стороны есть вопросы, ну и соответственно к вопросам есть пояснения и варианты ответов(также вопросы с пояснениями в отдельной таблице, а варианты ответов в отдельной). Так же есть ряд экзаменов для сдачи(в отдельной таблице). Вопрос: как организовать таблицу(-цы) соответствия какой вопрос задается какой специальности в определенном отделе и в определенном пододтеле. Что то голову сломал никак не могу сообразить. Помогите плииииз

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Как организовать базу
    #36073682
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gnom4ka,
1. Почему специальности привязаны к подотделам? Они настолько специфичны? Если нет, то м.б. лучше специальности в отдельную таблицу, и сделать ещё одну связующую "подотдел-специальность".
2. Если пользоваться исходной структурой отдел->подотдел->специальность, то привязывайте вопросы к ID специальности (в таблице вопросов добавьте поле spec_id внешним ключом на ID специальности), а при необходимости по нему найдёте и подотдел. Если пользоваться таблицей связей, то аналогично по ID строки в этой таблице.
...
Рейтинг: 0 / 0
Как организовать базу
    #36073684
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополню. Если один и тот же вопрос может задаваться разным специальностям, тогда надо не пихать ид специальности в вопросы, а сделать таблицу много-ко-многим "вопрос-специальность" с внешними ключами на соотв. таблицы.
...
Рейтинг: 0 / 0
Как организовать базу
    #36073896
Gnom4ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirДополню. Если один и тот же вопрос может задаваться разным специальностям, тогда надо не пихать ид специальности в вопросы, а сделать таблицу много-ко-многим "вопрос-специальность" с внешними ключами на соотв. таблицы.

если не сложно по подробнее с места с внешними ключами? как это реализуется?
...
Рейтинг: 0 / 0
Как организовать базу
    #36073969
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хмм. А как вы собрались делать иерархию "отдел->подотдел->специальность" без внешних ключей? Оно, конечно, можно, да только зачем...

Ну, предположим, что структура таблиц такая (это для примера)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE  TABLE IF NOT EXISTS `vopros` (
  `id` INT NOT NULL ,
  `vtext` VARCHAR( 45 ) NOT NULL ,
  PRIMARY KEY (`id`) );
CREATE  TABLE IF NOT EXISTS `spec` (
  `id` INT NOT NULL ,
  `name` VARCHAR( 45 ) NOT NULL ,
  PRIMARY KEY (`id`) );

Тогда вопросы и специальности можно связать такой таблицей:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE  TABLE IF NOT EXISTS `conj_vopr_spec` (
  `id` INT NOT NULL ,
  `id_vopr` INT NOT NULL ,
  `id_spec` INT NOT NULL ,
  PRIMARY KEY (`id`) ,
  INDEX `fk_vopr` (`id_vopr` ASC) ,
  INDEX `fk_spec` (`id_spec` ASC) ,
  CONSTRAINT `fk_vopr`
    FOREIGN KEY (`id_vopr` )
    REFERENCES `vopros` (`id` )
    ON DELETE RESTRICT
    ON UPDATE RESTRICT,
  CONSTRAINT `fk_spec`
    FOREIGN KEY (`id_spec` )
    REFERENCES `spec` (`id` )
    ON DELETE RESTRICT
    ON UPDATE RESTRICT);
ЗЫ. Собсно, про FK в документации по mysql-ю чётко расписано, правда не знаю, что там в русской версии, но наверное, тоже внятно должно быть изложено.
...
Рейтинг: 0 / 0
Как организовать базу
    #36073971
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gnom4kaПоставили задачку написать программку проверки знаний. Исходные данные: есть отделы, в этих отделах есть подотделы, в подотделах есть специальности(предполагается все в отдельных таблицах). И с другой стороны есть вопросы, ну и соответственно к вопросам есть пояснения и варианты ответов(также вопросы с пояснениями в отдельной таблице, а варианты ответов в отдельной). Так же есть ряд экзаменов для сдачи(в отдельной таблице). Вопрос: как организовать таблицу(-цы) соответствия какой вопрос задается какой специальности в определенном отделе и в определенном пододтеле. Что то голову сломал никак не могу сообразить. Помогите плииииз

Ну вы бы хоть для приличия диаграммку привели, которая у вас получается, а не на пальцах рассказывали.
На самом деле думаю что вы даже не пытались ничего делать, иначе бы таких вопросов не возникало.
Схему базы в студию!

PS Не понятно - вы ведь связываете вопросы со специальностью. При чем тут отделы и подотделы?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как организовать базу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]