ColumnDef
Материал из DevelopmenOnTheEdge
- Класс
ColumnDef
- Поддерживает документацию
- да
- Поддерживает extras
- да
Определение колонки (ColumnDef) — это модельный объект, соответствующий колонке в базе данных. Обладает следующими свойствами:
- name — имя колонки. В некоторых движках регистр имеет значение, в некоторых нет. Две колонки не могут отличаться только регистром.
- type — тип колонки.
- canBeNull — логическое значение, может ли колонка хранить NULL-значения (по умолчанию — нет).
- primaryKey — логическое значение, является ли колонка первичным ключом.
- oldNames — список старых имён колонки. Если колонка когда-то была переименована, разумно указать здесь старое имя. Тогда при обновлении DDL BeanExplorer сгенерирует запрос на переименование колонки без потери данных. Если старое имя не указать, то старая колонка будет удалена и создана новая, что может привести к потере данных.
- defaultValue — значение по умолчанию.
- reference — ссылка, если колонка является ссылкой на ключ в другой таблице:
- Либо просто имя целевой таблицы (ссылка на первичный ключ). Не рекомендуется использовать при ссылках на таблицы, определённые в m4!
- Либо
<имя таблицы>.<имя колонки>
: явное задание целевой колонки - Либо список таблиц для generic-ссылки.
- Либо совокупность двух полей: to — сама ссылка (с указанием колонки или нет), view — имя selection view.
- Для колонки-ссылки можно не указывать тип, если целевая таблица определена в be4-проекте, либо это generic-ссылка. В таких случаях тип колонки будет определён автоматически.
Примеры YAML
Текстовая колонка длиной до 30 символов, являющаяся первичным ключом:
- CODE: type: VARCHAR(30) primaryKey: true
Колонка перечислимого типа со значением по умолчанию (обратите внимание, надо брать значение по умолчанию в тройные кавычки):
- type: type: ENUM('import','export') defaultValue: '''import'''
Колонка с датой и значением по умолчанию — текущая дата:
- purchaseDate: type: DATE defaultValue: NOW()
Текстовая колонка максимальной длины 255 символов, допускающая значения NULL:
- comments: type: VARCHAR(255) canBeNull: true
Колонка-ссылка на первичный ключ другой таблицы:
- companyID: reference: companies
Колонка-ссылка с явным указанием selection view:
- munCode: reference: to: munExchangeTypes.munCode view: 'MunCode view'
Колонка с generic-ссылкой и документацией:
- ownerID: doc: владелец счета reference: to: - companies - persons view: ''