Postgres Table Naming
Почему я предпочитаю именовать таблицы в postgres
в единственном числе?
Кто-то относится к таблицам как к коллекциям строк. Это неплохой подход, вполне логичный, и объясняет стиль именования, в котором используется множественное число.
Кто-то именует в единственном числе и приводит такие аргументы:
- множественное число сложно определенных сущностей сложно переводить, например, если сущность называется
Person
, то таблица должна называтьсяpersons
, но корректное образование множественного числа —people
; - из этого часто следует очевидный вывод о простоте работы с
ORM
и объяснение, что так мы пытаемся общаться с системой на объектно-ориентированном языке.
Все эти аргументы, на мой взгляд, довольно слабы.
На самом деле, Postgres
— объектно-реляционная СУБД. И каждая таблица в ней является описанием типа данных. Вот
смотрите:
create table person
(
name text,
surname text
);
select ($$(John,Doe)$$::person).name;
Фактически, создавая таблицу, вы описываете тип данных. Вы же не используете множественное число для именования классов своих сущностей? И здесь аналогичный подход.
Конечно, выбор способа именования всегда остаётся за командой, и я не пытаюсь никому навязать свой правильный стиль.
При выборе, однако, гораздо инженернее и более зрело полагаться на фундаментальное объяснение своей точки зрения.