Инструменты пользователя

Инструменты сайта


start:работа_со_структурой_бд

Работа со структурой базы данных

Для проектирования и поддержания актуальной структуры базы данных предлагается использовать следующие меры и правила:

  1. Для проектирования БД использовать Toad Data Modeller 2.25.
  2. Хранить в SVN SQL-скрипт создания БД, начальные и тестовые данные, все патчи для БД.
  3. Файл проекта TDM и SQL-скрипт создания БД должен быть всегда в актуальном состоянии.
  4. SQL-файлы c view, procedures и т.д. хранить отдельно от SQL-скрипта создания БД.
  5. Поддержка начальных данных и доп. структуры в актуальном состоянии.
  6. Версию базы данных хранить в специальной таблице и изменять её в патче.
  7. Приветствуется использование скриптов для создания БД из дампа .

Приведем пример структуры папок и файлов для проекта Project.

  • docs/
    • Views/ - Папка с Views
      • Project.Reports.sql - Views для создания отчетов
      • Project.Site.sql - Views для работы с источниками
      • Project.Audit.sql - Views для работы с аудитом
    • Patches/ - Папка с патчами для БД
      • 2010-02-15-patch.sql
      • 2010-02-16-01-proxy.sql
      • 2010-02-16-02-words-01.sql
    • Project.dm2 - Файл проекта TDM
    • Project.sql - Сгенерированный sql-скрипт создания БД от TDM
    • Initial Data.sql Начальные данные (DML)
    • Test Data.sql - Тестовые данные (DML)
    • rebuild-database.bat 1) - Batch-файл создания БД

Процесс изменения структуры БД

  1. Отредактировать файл проекта TDM.
  2. Сгенерировать из TDM SQL-скрипт создания БД.
  3. Создать патч.
  4. Изменить при необходимости Views, Initial Data.sql.
  5. Применить патч.

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

  1. Все внешние ключи должны заканчиваться на «Id».
  2. Использование lowerCamelCase.
  3. Названия таблиц – во множественном числе.
  4. Использовать полную форму PK (не id, a tableId)…
  5. Примеры именования
    1. Таблицы: users, newsCatalogues, newsFiles, vfsFoldersTree
    2. Поля: userId, newsId, newsCatalogueId, title, description, content, orderNumber, publicationDate, isFavorite
    3. Внешние ключи: FK_questionRubrics_statusId, FK_questionTries_roundId (FK_<sourceTable>_<referenceKey>)
    4. Индексы: IX_ruQuestionPoints_roundUserId (IX_<sourceTable>_<indexKey>)

Рекомендуемые названия полей

  • title – заголовок, название;
  • description – описание;
  • foreword – преамбула, короткий текст;
  • content – обычный текст;
  • publicationDate – дата публикации;
  • createdAt – дата создания;
  • modifiedAt – дата изменения;
  • alias – системное имя;
  • lastName, firstName, middleName – ФИО;
  • url – ссылка;
1) файл исполняет команды и заливает файлы: drop database, create database, Project.sql, Views/*, Initial Data.sql, Test Data.sql
start/работа_со_структурой_бд.txt · Последние изменения: 2012/01/11 01:18 — sergeyfast