Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование базы данных курсовых работ / 5 сообщений из 5, страница 1 из 1
18.05.2007, 23:14
    #34537075
Verial
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных курсовых работ
Короче мучаю курсовую работу. Задача следующая: надо создать БД курсовых работ на MySQL, ну и обработку данных входящих в эту БД естественно. Данные, подлежащие хранению в БД:
1. Информация о студентах:
-номер зачетки
-ФИО
-курс
-группа
-отделение (специальность)
2. Информация о преподавателях
-номер препода
-фамилия
-должность
-кафедра
-телефон
3. Информация о темах курсовых работ
-номер препода
-тема курсовой
-лимит студентов на эту тему.
4. Информация о распределении тем курсовых работ
-номер зачетки
-тема
-номер преподователя (руководителя)
Если можно объясните поконкретнее, на примере Navicat MySQL или MySQL-Front как грамотно связать все эти данные и проиндексировать. И объясните зачем вообще надо индексировать таблицы. Извиняюсь за то, что задаю много вопросов сразу. Кто в силах, помогите...
...
Рейтинг: 0 / 0
20.05.2007, 14:27
    #34538104
NF
NF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных курсовых работ
Что-то я не понял вопроса. Таблицы уже связаны у вас. Ведь связь - это наличие связываюшего поля в таблице. Например у вас таблицы "Информация о студентах" и "Информация о распределении тем курсовых работ" связаны полем Номер зачетки.

1. Информация о студентах:
-номер зачетки
-ФИО
4. Информация о распределении тем курсовых работ
-номер зачетки
-тема


На указанных вами продуктах показать не могу, т.к. ими не пользуюсь и не имею. Могу в ErWin набросать.
...
Рейтинг: 0 / 0
22.05.2007, 17:55
    #34543384
babaEGA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных курсовых работ
Таблицы:
1) Студент (номер студента, ФИО, номер зачетки, номер группы).
2) Группа (номер группы, название группы, номер специальности, номер курса).
3) специальность (номер специальности, название специальности).
4) Препод (номер препода, Фио, номер должности, номер кафедры, телефон)
5) Кафедра (номер, название)
6) должности (номер, название)
7) курсовая (номер курсовой, название темы, номер препода, лимит студентов на тему)
8) инфа о распределении тем курсовых работ (номер студента, номер курсовой) (номер препода уже есть в таблице курсовая, номер зачетки есть инфе о студенте).

Как то так, имхо.
...
Рейтинг: 0 / 0
28.05.2007, 09:48
    #34554439
Verial
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных курсовых работ
babaEGAТаблицы:
1) Студент (номер студента, ФИО, номер зачетки, номер группы).
2) Группа (номер группы, название группы, номер специальности, номер курса).
3) специальность (номер специальности, название специальности).
4) Препод (номер препода, Фио, номер должности, номер кафедры, телефон)
5) Кафедра (номер, название)
6) должности (номер, название)
7) курсовая (номер курсовой, название темы, номер препода, лимит студентов на тему)
8) инфа о распределении тем курсовых работ (номер студента, номер курсовой) (номер препода уже есть в таблице курсовая, номер зачетки есть инфе о студенте).

А какие из полей первичные ключи, а какие внешние. И подскажите, пожалуйста, как на MySQL описать внешние ключи. Заранее спасибо.
...
Рейтинг: 0 / 0
28.05.2007, 12:39
    #34554960
Verial
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных курсовых работ
Пытаюсь спроектировать предложенную babaEGA базу данных с помощью Database Designer for MySQL. Получилась структура, которая изображена в приложенном файле. код SQL ниже.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
SET FOREIGN_KEY_CHECKS= 0 ;

-- Drop table kafedra
DROP TABLE IF EXISTS `kafedra`;

CREATE TABLE `kafedra` (
  `id_kaf` int( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT,
  `nazv_kaf` char( 50 ) NOT NULL,
  PRIMARY KEY(`id_kaf`)
)
ENGINE=INNODB;

-- Drop table dolgnosti
DROP TABLE IF EXISTS `dolgnosti`;

CREATE TABLE `dolgnosti` (
  `id_dolgn` int( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT,
  `nazv_dolgn` char( 70 ) NOT NULL,
  PRIMARY KEY(`id_dolgn`)
)
ENGINE=INNODB;

-- Drop table spec
DROP TABLE IF EXISTS `spec`;

CREATE TABLE `spec` (
  `id_spec` int( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT,
  `nazv_spec` char( 70 ) NOT NULL,
  PRIMARY KEY(`id_spec`)
)
ENGINE=INNODB;

-- Drop table gruppa
DROP TABLE IF EXISTS `gruppa`;

CREATE TABLE `gruppa` (
  `id_grup` int( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT,
  `nazv_grup` char( 50 ),
  `id_spec` int( 11 ) UNSIGNED NOT NULL,
  `kurs` int( 11 ) UNSIGNED NOT NULL,
  PRIMARY KEY(`id_grup`),
  CONSTRAINT `Ref_07` FOREIGN KEY (`id_spec`)
    REFERENCES `spec`(`id_spec`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
)
ENGINE=INNODB;

-- Drop table prepod
DROP TABLE IF EXISTS `prepod`;

CREATE TABLE `prepod` (
  `id_prep` int( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT,
  `FIO` char( 80 ) NOT NULL,
  `id_dolgn` int( 11 ) UNSIGNED NOT NULL,
  `id_kaf` int( 11 ) UNSIGNED NOT NULL,
  `telefon` char( 50 ),
  PRIMARY KEY(`id_prep`),
  CONSTRAINT `Ref_04` FOREIGN KEY (`id_dolgn`)
    REFERENCES `dolgnosti`(`id_dolgn`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `Ref_08` FOREIGN KEY (`id_kaf`)
    REFERENCES `kafedra`(`id_kaf`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
)
ENGINE=INNODB;

-- Drop table student
DROP TABLE IF EXISTS `student`;

CREATE TABLE `student` (
  `id_stud` int( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT,
  `f_name` char( 50 ) NOT NULL,
  `s_name` char( 50 ) NOT NULL,
  `fat_name` char( 50 ) NOT NULL,
  `nz` int( 6 ) UNSIGNED NOT NULL,
  `id_grup` int( 11 ) UNSIGNED NOT NULL,
  PRIMARY KEY(`id_stud`),
  CONSTRAINT `Ref_03` FOREIGN KEY (`id_grup`)
    REFERENCES `gruppa`(`id_grup`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
)
ENGINE=INNODB;

-- Drop table kursova
DROP TABLE IF EXISTS `kursova`;

CREATE TABLE `kursova` (
  `id_kursovoi` int( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT,
  `tema` char( 200 ) NOT NULL,
  `id_prep` int( 11 ) UNSIGNED NOT NULL,
  `lim_stud` int( 11 ) UNSIGNED NOT NULL,
  `lim_client` int( 11 ) UNSIGNED NOT NULL,
  PRIMARY KEY(`id_kursovoi`),
  CONSTRAINT `Ref_06` FOREIGN KEY (`id_prep`)
    REFERENCES `prepod`(`id_prep`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
)
ENGINE=INNODB;

-- Drop table result
DROP TABLE IF EXISTS `result`;

CREATE TABLE `result` (
  `id_stud` int( 11 ) UNSIGNED NOT NULL,
  `id_kursovoi` int( 11 ),
  INDEX `ind_stud_kursov`(`id_stud`, `id_kursovoi`),
  CONSTRAINT `Ref_01` FOREIGN KEY (`id_kursovoi`)
    REFERENCES `kursova`(`id_kursovoi`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `Ref_02` FOREIGN KEY (`id_stud`)
    REFERENCES `student`(`id_stud`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
)
ENGINE=INNODB;

SET FOREIGN_KEY_CHECKS= 1 ;
ТАк вот, когда пытаюсь выполнить этот запрос, все таблицы создаются нормально, кроме таблицы result. Выдается ошибка "MySQL Error Code: (1005) Can't create table '.\kurs_work\result.frm' (errno:150)". Движок таблиц - InnoDB. Читал http://www.mysql.ru/docs/man/SEC451.html , что это из-за того, что не проиндексирована дочерняя таблица, - создавал индексы по обоим полям - та же ошибка, помогите разобраться.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование базы данных курсовых работ / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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