Database

Queries, tables, etc.

0. Введение

TODO

1. Файлы с исходным кодом

TODO

2. Форматирование

2.1. Регистр ключевых слов

Ключевые слова записываются в нижнем регистре.

    -- Плохо
    SELECT * FROM <table>;

    -- Хорошо
    select * from <table>;

3. Использование возможностей языка

TODO

4. Правила именования

4.1. Общие правила для всех идентификаторов

a. Используются общие правила именования всех идентификаторов из общих стандартов разработки, п. 5.1.

b. Для исключения проблем с использованием разного регистра и специальных символов в качестве разделителей заключать идентификатор в двойные кавычки. Они являются техническим средством позволяющим задать требуемое имя и не влияют на отображение имён при просмотре базы данных.

c. Основные идея, которые стоят за именованием объектов базы данных - это получить сквозные правила именования от базы данных до приложения.

4.2. Правила для идентификаторов каждого типа

4.2.1. Имена сущностей (таблиц)

Правила именования сущностей соответствуют правилам именования классов. Например, "FinancialInfo", "Company".

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

4.2.2. Имена полей сущности (таблицы)

a. Правила именования полей соответсвуют правилам именования полей классов.

b. Поле, являющееся идентификатором сущности, именуется id.

c. Поле, являющееся ссылкой на другую сущность, т.е. внешним ключом, именуется <сущность>Id. Например, сущность связана с сущностью Company, тогда поле должно называться "companyId".

4.2.3. Правила именования индексов

Название индекса состоит из следующих групп:

  • префикс, представляющий собой тип индекса: обычный (idx, index)

    или уникальный (udx, unique index)

  • сущность, которой этот индекс принадлежит

  • поля сущности

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

    -- Обычный индекс
    "idxFinancialInfo[dividendYield,revenue]"

    -- Уникальный индекс
    "udxInstrument[ticker,exchange,country]"

4.2.4. Правила именования ограничений/связей (constraint'ов)

a. Название ограничения состоит из следующих групп:

  • префикс, представляющий собой тип ограничения: первичный ключ (pk, primary key)

    или внешний ключ (fk, foreign key)

  • сущность, на поля которой налагается ограничение

  • [необязательное] поля сущности, на которую налагаются ограничения

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

b. Поле сущности для первичного ключа не указывается, т.к. оно всегда id.

c. Связываемая внешним ключом сущность не указывается, т.к. её описание уже представлено полем, на которое ссылкой накладывается ограничение.

    -- Первичный ключ (поле `id` сущности FinancialInfo)
    "pkFinancialInfo"

    -- Внешний ключ (связь с сущностью Instrument по первичному ключу id)
    "fkFinancialInfo[instrumentId]"

4.2.5. Правила именования базы данных

В качестве названия базы данных должно использовать одно слово в нижнем регистре. Например, investment

4.2.6. Правила именования схемы

В качестве названия схемы базы данных должно использовать одно слово в нижнем регистре. Например, portfolio. Тогда обращение к сущности внутри схемы будет выглядеть: portfolio."PortfolioLine".

4.2.7. Правила именования пользователей

В качестве имени пользователя должно использовать одно слово в нижнем регистре.

Last updated