Postgres Table Naming

Почему я предпочитаю именовать таблицы в postgres в единственном числе?

Кто-то относится к таблицам как к коллекциям строк. Это неплохой подход, вполне логичный, и объясняет стиль именования, в котором используется множественное число.

Кто-то именует в единственном числе и приводит такие аргументы:

  • множественное число сложно определенных сущностей сложно переводить, например, если сущность называется Person, то таблица должна называться persons, но корректное образование множественного числа — people;
  • из этого часто следует очевидный вывод о простоте работы с ORM и объяснение, что так мы пытаемся общаться с системой на объектно-ориентированном языке.

Все эти аргументы, на мой взгляд, довольно слабы.

На самом деле, Postgres — объектно-реляционная СУБД. И каждая таблица в ней является описанием типа данных. Вот смотрите:

create table person
(
  name    text,
  surname text
);

select ($$(John,Doe)$$::person).name;

Фактически, создавая таблицу, вы описываете тип данных. Вы же не используете множественное число для именования классов своих сущностей? И здесь аналогичный подход.

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

При выборе, однако, гораздо инженернее и более зрело полагаться на фундаментальное объяснение своей точки зрения.