Разработка web-приложения для универа. Создание базы данных

В одной из прошлых статьей мы "разработали" схему базы данных. Напоминаю.

Тут не указаны связи. Но мы указали их в запросах при создании БД. Вот команды:

CREATE TABLE fakultet (
        id  INT AUTO_INCREMENT NOT NULL,
        name  VARCHAR(50) NOT NULL,
        PRIMARY KEY(id)
      ) ENGINE=InnoDB CHARACTER SET=UTF8;

CREATE TABLE courpuses (
        id  INT AUTO_INCREMENT NOT NULL,
        name  VARCHAR(50) NOT NULL,
        PRIMARY KEY(id)
      ) ENGINE=InnoDB CHARACTER SET=UTF8;

CREATE TABLE kafedra (
        id  INT AUTO_INCREMENT NOT NULL,
        name  VARCHAR(50) NOT NULL,
        fakultet_id INT NOT NULL,
        PRIMARY KEY(id),
        FOREIGN KEY (fakultet_id) REFERENCES fakultet(id)
      ) ENGINE=InnoDB CHARACTER SET=UTF8;

CREATE TABLE teachers (
        id  INT AUTO_INCREMENT NOT NULL,
        name  VARCHAR(50) NOT NULL,
        fname  VARCHAR(50) NOT NULL,
        kafedra_id INT NOT NULL,
        PRIMARY KEY(id),
        FOREIGN KEY (kafedra_id) REFERENCES kafedra(id)
      ) ENGINE=InnoDB CHARACTER SET=UTF8;

CREATE TABLE groups (
        id  INT AUTO_INCREMENT NOT NULL,
        name  VARCHAR(50) NOT NULL,
        kafedra_id INT(11),
        PRIMARY KEY(id),
        FOREIGN KEY (kafedra_id) REFERENCES kafedra(id)
      ) ENGINE=InnoDB CHARACTER SET=UTF8;

CREATE TABLE cabinets (
        id  INT AUTO_INCREMENT NOT NULL,
        name  VARCHAR(50) NOT NULL,
        courpuses_id INT(11),
        PRIMARY KEY(id),
        FOREIGN KEY (courpuses_id) REFERENCES courpuses(id)
      ) ENGINE=InnoDB CHARACTER SET=UTF8;

CREATE TABLE lists (
        id  INT AUTO_INCREMENT NOT NULL,
        name  VARCHAR(50) NOT NULL,
        time INT(1) NOT NULL,
        teacher_id INT(11),
        cabinets_id INT(11),
        group_id INT(11),
        PRIMARY KEY(id),
        FOREIGN KEY (cabinets_id) REFERENCES cabinets(id)
      ) ENGINE=InnoDB CHARACTER SET=UTF8;

С одной стороны их достаточно много, но с другой, думаю не очень. Есть понимание, что часть таблиц ещё будут изменены или дополнены новыми столбцами/индексами.

Но разберем, что есть.

Первым делом создаются таблицы, которые не будут ссылаться на другие таблицы, что естественно.

Затем, для таблиц со связями указываем внешний ключ.

FOREIGN KEY (fakultet_id) REFERENCES fakultet(id)

Сначала идет ключевая фраза FOREIGN KEY. Далее в скобках укажем поле таблицы КОТОРОЕ будет ссылаться на поле другой таблицы (у нас это fakultet_id) далее снова ключевое слово REFERENCES после которого опишем таблицу и поле НА КОТОРОЕ будем ссылаться. Эта запись чем-то напоминает вызов функции.

Я эти команды выполнял в консоли. Советую вам убедиться всё ли "встало" как надо.

show tables

Этой командой можно посмотреть таблицы в базе.

describe `table`

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

Листинг кода - можно запустить его в phpMyAdmin

Материал подготовлен автором @zheev

vox-populiбазыданныхmysqlразработкапроектирование
206
162.372 GOLOS
0
В избранное
Web Development
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает тех программистов, которые презирают тех, кто их презирает.
206
0

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

Авторы получают вознаграждение, когда пользователи голосуют за их посты. Голосующие читатели также получают вознаграждение за свои голоса.

Зарегистрироваться
Комментарии (1)
Сортировать по:
Сначала старые