Как стать автором
Обновить

Как создать чистую базу данных

Время на прочтение4 мин
Количество просмотров7.6K
Автор оригинала: Mohammad Faisal

18 лучших практик создания простых и последовательных имен

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

Терминология

Таблица: это набор данных

Первичный ключ: Это уникальный идентификатор таблицы

Атрибут: означает свойство ваших данных. Например, name.user

Тип данных: Типы данных представляют различные типы ваших данных. Например-string, int, timestamp и т. Д.

1. Слова должны быть разделены подчеркиванием

Если ваше имя атрибута содержит более 1 слова, отделите его snake_case. Не используйте camelCase или любой другой случай для согласованности.

Плохо

wordcount или WordCount

Хорошо

word_count

Причина

  • Улучшает читабельность

  • Имена могут стать более независимыми от платформы

2. Типы данных не должны быть именами

Никогда не используйте типы данных в качестве имени столбца. Это происходит в основном для параметров метки времени. Дайте ему осмысленное имя.

Плохо

timestamp or text

Хорошо

created_at or description

Причина

  • Использование типов данных может создать путаницу в конце приложения.

  • Предоставление собственного имени дает больше контекста для использования параметра.

3. Имена атрибутов должны быть строчными

Не используйте имена в верхнем регистре для своих атрибутов.

Плохо

Description

Хорошо

description

Причина

  • Позволяет избежать путаницы с ключевыми словами SQL в верхнем регистре

  • Это может улучшить скорость набора текста

4. Напишите полные слова

Не пытайтесь сократить имена столбцов ради пространства или любой другой логики. Старайтесь быть как можно более понятными.

Плохо

mid_name

Хорошо

middle_name

Причина

Это правило способствует самодокументированному дизайну

5. Но используйте общие сокращения

Исключение из правила-4-это когда у вас есть широко распространенная аббревиатура. В таких ситуациях выбирайте короткий.

Хорошо

i18n

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

6. Избегайте наличия чисел в имени столбца

Верьте или нет, я видел это достаточно. Никогда не используйте числа в имени столбца.

Плохо

address1 , address2

Хорошо

primary_address, secondary_address

Причина

Это признак очень плохой нормализации. Старайтесь избегать этого.

7. Используйте короткие имена таблиц

Будьте очень осторожны при именовании таблиц, потому что длинные имена таблиц могут оказать плохое влияние в будущем.

Плохо

site_detail

Хорошо

site

Причина

Короткие имена таблиц помогут вам при создании реляционных столбцов и связывающих таблиц.

8. Ищите зарезервированные слова

В каждой базе данных есть несколько зарезервированных слов. Определите их и избегайте.

Плохо

user lock table etc

Список зарезервированных слов для некоторых популярных баз данных

9. Сингулярные имена для таблиц

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

Плохо

users and orders

Хорошо

user and order

Причина

  • Это способствует согласованности с первичными ключами и таблицами подстановки

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

10. Таблицы ссылок должны иметь алфавитный порядок

При создании таблицы соединений объедините имена двух таблиц в алфавитном порядке.

Плохо

book_author

Хорошо

author_book

11. Имена столбцов в единственном числе

Обычно это лучший способ, если вы не нарушаете правила нормализации данных.

Плохо

books

Хорошо

book

12. Имя первичного ключа

Если это один столбец, то он должен быть назван как id

CREATE TABLE order (
 id bigint PRIMARY KEY,
 order_date date NOT NULL
);

13. Имя внешнего ключа

Это должно быть имя другой таблицы и упомянутого поля. Например, если вы ссылаетесь на person внутри вашего team_member таблица, то вы можете сделать это так.

CREATE TABLE team_member (
 person_id bigint NOT NULL REFERENCES person(id),
);

14. Не указывайте в конце имен столбцов типы хранимых в них данных

Нет смысла суффиксировать имена столбцов типами данных. Избегайте этого.

Плохо

name_tx

Хорошо

name

15. Индексы должны иметь как имя таблицы, так и столбца

Если вы создаете индекс, за именем таблицы следуют имена столбцов, на которые вы ссылаетесь

CREATE TABLE person (
 id bigserial PRIMARY KEY,
 first_name text NOT NULL,
 last_name text NOT NULL,
);
CREATE INDEX person_ix_first_name_last_name ON person (first_name, last_name);

16. Имена столбцов типа даты

Суффикс ваших имен столбцов типа даты с _on или _date.

Например, если у вас есть столбец для хранения обновленной даты, делайте так,

Хорошо

updated_on или updated_date

17. Имена столбцов типа даты и времени

Если у вашего имени столбца есть время, то суффикс их с _at или _time.

Например, если вы хотите сохранить время заказа, то

Плохо

ordered

Хорошо

ordered_at or order_time

18. Имена столбцов логического типа

Если у вас есть имена столбцов логического типа, то префикс их is_ или has_.

Хорошо

is_admin или has_membership

Заключение

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

Единственное, что хуже плохого соглашения, - это несколько соглашений

Разрабатывая базу данных с нуля, имея в виду эти правила, вы заложите крепкий фундамент на будущее.

Каковы ваши мысли? Есть ли правило, с которым вы не согласны? Я более чем рад продуктивному разговору в комментариях!

Хорошего дня! 

Теги:
Хабы:
Всего голосов 18: ↑9 и ↓9+4
Комментарии21

Публикации

Истории

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань