При разработке программного проекта одним из наиболее важных фундаментальных и внутренних аспектов является правильно структурированная схема базы данных. Это эквивалентно тому, что при строительстве дома вам необходимо обеспечить правильную закладку фундамента, в противном случае шансы построить качественный дом резко снижаются.
На удивление проще, чем можно было бы подумать, давайте изучим различные аспекты, используемые для написания хорошо спроектированной схемы базы данных.
CREATE TABLE Синтаксис
Для начала откройте свой любимый Текстовый редактор. Для создания схемы базы данных требуется не что иное, как простой текстовый файл. База данных состоит из нескольких таблиц, каждая из которых состоит из столбцов, и синтаксис CREATE TABLE используется для создания одной таблицы. Вот простой пример:
СОЗДАТЬ ТАБЛИЦУ пользователей (
id INT NOT NULL,
is_active TINY INT NOT NULL,
full_name VAR CHAR (100) NOT NULL,
электронная почта VARCHAR (100) NOT NULL
);
Как видите, это создаст таблицу базы данных с именем
пользователи который состоит из четырех столбцов. Это должен быть довольно простой оператор SQL, начинающийся с СОЗДАТЬ ТАБЛИЦУ, за которым следует имя таблиц базы данных, затем в круглых скобках столбцы таблицы, разделенные запятой.Используйте правильные типы столбцов
Как показано выше, столбцы, из которых будет состоять таблица, разделены запятыми. Каждое определение столбца состоит из трех одинаковых частей:
COL_NAME TYPE [OPTIONS]
Имя столбца, за которым следует тип столбца, а затем любые дополнительные параметры. Мы рассмотрим необязательные параметры позже, но, сосредоточившись на типе столбца, ниже перечислены наиболее часто используемые типы столбцов:
Во всех смыслах перечисленные выше типы столбцов - это все, что вам нужно для написания хорошо построенных схем базы данных mySQL.
Определить параметры столбца
При определении столбцов вы также можете указать различные параметры. Ниже еще один пример СОЗДАТЬ ТАБЛИЦУ утверждение:
СОЗДАТЬ ТАБЛИЦУ пользователей (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
имя пользователя VARCHAR (100) NOT NULL UNIQUE,
status ENUM ('активный', 'неактивный') NOT NULL ПО УМОЛЧАНИЮ 'активный',
баланс DECIMAL (8,2) NOT NULL ПО УМОЛЧАНИЮ 0,
date_of_birth DATETIME,
created_at TIMESTAMP NOT NULL CURRENT_TIMESTAMP по умолчанию
);
Вышесказанное может показаться немного устрашающим, но не волнуйтесь, это довольно просто. Вот что происходит в приведенном выше заявлении:
- Вы всегда должны использовать NOT NULL во всех возможных столбцах, чтобы повысить скорость и производительность таблицы. Это просто указывает, что столбец не может оставаться пустым / нулевым при вставке строки.
- Всегда старайтесь, чтобы размер столбца был как можно меньше, поскольку это помогает повысить скорость и производительность.
- В я бы column - целое число, также является первичным ключом таблицы, означающим его уникальность, и будет увеличиваться на единицу при каждой вставке записи. Обычно это следует использовать во всех таблицах, которые вы создаете, чтобы вы могли легко ссылаться на любую отдельную строку в таблице.
- В положение дел Столбец является ENUM и должен иметь значение «активный» или «неактивный». Если значение не указано, новая строка будет начинаться со статусом «активный».
- В баланс столбец начинается с 0 для каждой новой строки и представляет собой сумму, отформатированную двумя двумя десятичными точками.
- В Дата рождения столбец - это просто ДАТА, но он также допускает нулевое значение, так как дата рождения может быть неизвестна при создании.
- Наконец, создано на Столбец является TIMESTAMP и по умолчанию соответствует текущему времени, когда строка была вставлена.
Вышеупомянутое является примером хорошо структурированной таблицы базы данных, и его следует использовать в качестве примера в будущем.
Одно из самых больших преимуществ использования реляционных баз данных, таких как mySQL это отличная поддержка ограничений внешнего ключа и каскадирования. Это когда вы связываете две таблицы вместе столбцом, образуя отношение родитель-потомок, поэтому при удалении родительской строки необходимые дочерние строки также автоматически удаляются.
Вот пример:
СОЗДАТЬ ТАБЛИЦУ пользователей (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
имя пользователя VARCHAR (100) NOT NULL UNIQUE,
полное_имя VARCHAR (100) NOT NULL,
created_at TIMESTAMP NOT NULL CURRENT_TIMESTAMP по умолчанию
) двигатель = InnoDB;
СОЗДАТЬ ТАБЛИЧНЫЕ заказы (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
идентификатор пользователя INT NOT NULL,
сумма DECIMAL (8,2) NOT NULL,
product_name VARCHAR (200) NOT NULL,
ИНОСТРАННЫЙ КЛЮЧ (идентификатор пользователя) ССЫЛКИ на пользователей (идентификатор) ПРИ КАСКАДЕ УДАЛЕНИЯ
) двигатель = InnoDB;
Вы заметите предложение FOREIGN KEY в последней строке. В этой строке просто говорится, что эта таблица содержит дочерние строки, которые связаны ID пользователя столбец в их родительскую строку, которая является я бы столбец пользователи стол. Это означает, что каждый раз, когда строка удаляется из пользователи table, mySQL автоматически удалит все соответствующие строки из заказы таблица, помогающая обеспечить структурную целостность вашей базы данных.
Также обратите внимание на двигатель = InnoDB в конце приведенного выше утверждения. Хотя InnoDB теперь является типом таблицы mySQL по умолчанию, это было не всегда, поэтому его следует добавить на всякий случай, поскольку каскадирование работает только с таблицами InnoDB.
Дизайн с уверенностью
Теперь вы на правильном пути к созданию надежных, хорошо структурированных схем базы данных mySQL. Используя вышеупомянутые знания, вы теперь можете писать хорошо организованные схемы, обеспечивающие как производительность, так и структурную целостность.
Имея свою схему, убедитесь, что вы знаете, как использовать ее с этими основные команды SQL.
Узнайте, как использовать объединения SQL для оптимизации запросов, экономии времени и создания ощущения опытного пользователя SQL.
- Неопределенные
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Еще один шаг…!
Пожалуйста, подтвердите свой адрес электронной почты в электронном письме, которое мы вам только что отправили.