Выбор имен для таблиц в SQL: единственное или множественное число
Быстрый ответ
Принцип выбора между одиничным и множественным числом именования таблиц в SQL основывается на желании достичь прозрачности и консистентности. При представлении отдельных экземпляров сущности использование единственного числа будет предпочтительным:
CREATE TABLE сотрудник (
id INT PRIMARY KEY,
имя VARCHAR(50)
);
Если таблица обозначает группу экземпляров, то выбирается множественное число:
CREATE TABLE сотрудники (
id INT PRIMARY KEY,
имя VARCHAR(50)
);
Следование единому подходу при именовании элементов схемы гарантирует читаемость ваших запросов и упрощает процесс поддержки.
Разгадывание взаимоотношений между основной и детализированной информацией
Единственное число картинно проясняет иерархические зависимости между таблицами, что содействует перцепции структуры:
CREATE TABLE заказ (
id INT PRIMARY KEY,
дата TIMESTAMP
);
CREATE TABLE деталь_заказа (
id_заказа INT,
id_товара INT,
количество INT,
FOREIGN KEY (id_заказа) REFERENCES заказ(id)
);
Применяя ORM, такие как Hibernate или Entity Framework, именование таблиц в единственном числе упрощает соотнесение с классами:
class Пользователь(Base):
__tablename__ = 'пользователь'
id = Column(Integer, primary_key=True)
имя = Column(String)
Преодоление языковых барьеров
Демонстрация предпочтения к названиям в единственном числе способствует языковой нейтральности и делает жизнь легче для тех, кому английский не родной:
CREATE TABLE [пользователь] (
id INT PRIMARY KEY,
имя VARCHAR(50)
);
Конвенции именования, отражающие уникальность данных
Единственное число подкрепляет уникальность записей и обеспечивает объясняемость структуры:
CREATE TABLE продукт (
id INT PRIMARY KEY,
описание VARCHAR(255),
цена DECIMAL(10, 2)
);
Подчинение практичности исключениям
Есть ситуации, когда множественное число выглядит более уместным — например, при создании таблицы для хранения логов:
CREATE TABLE логи (
id INT PRIMARY KEY,
дата_события TIMESTAMP,
описание TEXT
);
При этом важно сохранять консистентность именования и отражать суть хранящихся данных.
Отвержение разнородных конвенций
Совмещать различные стандарты наименования в одной базе данных не стоит — это может повлечь за собой путаницу и нарушение в работе системы.
Соблюдение баланса эстетики и функциональности
Тщательно подобранные имена таблиц облегчают распознавание данных, делая их обработку интуитивно понятной. Важно найти золотую середину между эстетикой и функциональностью.
Полезные материалы
- Руководство по стилю SQL от Саймона Холлиуэла
- Опрос среди разработчиков на Stack Overflow 2020
- Идентификаторы баз данных – SQL Server | Microsoft Learn
- Стиль программирования на SQL от Джо Селко – 1-е издание
- Вступление к работе с Eloquent – Laravel 8.x
- Руководство по стилю Ruby on Rails
- Конвенции именования в стандартах кодирования PHP PEAR