Типы колонок — различия между версиями
Материал из DevelopmenOnTheEdge
								
												
				Lan  (обсуждение | вклад)  | 
				Fedor  (обсуждение | вклад)   | 
				||
| Строка 1: | Строка 1: | ||
| + | => github/be5 +  | ||
| + | |||
В BeanExplorer4 определены типы [[ColumnDef|колонок]] таблиц, независимые от движка СУБД. В коде тип колонок хранится в классе {{Class|com.beanexplorer.enterprise.metadata.model.SqlColumnType}}. У типа всегда есть строковое представление. Имеются следующие типы:  | В BeanExplorer4 определены типы [[ColumnDef|колонок]] таблиц, независимые от движка СУБД. В коде тип колонок хранится в классе {{Class|com.beanexplorer.enterprise.metadata.model.SqlColumnType}}. У типа всегда есть строковое представление. Имеются следующие типы:  | ||
* KEYTYPE — тип, который используется по умолчанию для первичного ключа таблицы (обычно совпадает с BIGINT).  | * KEYTYPE — тип, который используется по умолчанию для первичного ключа таблицы (обычно совпадает с BIGINT).  | ||
Текущая версия на 22:45, 6 марта 2020
=> github/be5 +
В BeanExplorer4 определены типы колонок таблиц, независимые от движка СУБД. В коде тип колонок хранится в классе SqlColumnType. У типа всегда есть строковое представление. Имеются следующие типы:
- KEYTYPE — тип, который используется по умолчанию для первичного ключа таблицы (обычно совпадает с BIGINT).
 - Текстовые:
 
- CHAR — строка фиксированной длины. Длина задаётся в скобках. Например: CHAR(10).
 - VARCHAR — строка произвольной длины вплоть до заданной. Длина задаётся в скобках. Например: VARCHAR(15).
 - TEXT — большое текстовое поле (не меньше 4000 символов).
 - BIGTEXT — очень большое текстовое поле (TODO:уточнить минимальную длину).
 
- Двоичные:
 
- BLOB — бинарные данные (TODO:уточнить минимальную длину).
 - MEDIUMBLOB — бинарные данные (TODO:уточнить минимальную длину).
 
- Численные:
 
- INT — целое знаковое число (минимум 32-битное).
 - INT UNSIGNED — целое беззнаковое число (минимум 32-битное). Поддерживается не всеми движками.
 - BIGINT — целое знаковое число (минимум 64-битное).
 - BIGINT UNSIGNED — целое беззнаковое число (минимум 64-битное). Поддерживается не всеми движками.
 - SMALLINT — целое знаковое число (минимум 16-битное).
 - DECIMAL — дробное число указанной длины с указанной точностью (количество десятичных знаков). Например DECIMAL(10,2).
 - CURRENCY — валюта. Сейчас совпадает с DECIMAL(18,2).
 
- Дата и время:
 
- DATE — дата.
 - DATETIME — дата и время.
 - TIMESTAMP — дата и время. Совпадает с DATETIME во всех движках кроме MySQL. Подробнее тут: Datetime или timestamp.
 
- Перечислимые:
 
- ENUM — перечисление допустимых значений. Например ENUM(on,off,pending)
 - BOOL — допустимо два значения — 'no' и 'yes' (совпадает с ENUM(no,yes))
 
Сопоставление типов колонок
| Тип BE4 | MySQL | PostGres | DB2 | MS SQL 2008 | Oracle | 
| BLOB | MEDIUMBLOB | BYTEA | BLOB(4M) | IMAGE | BLOB | 
| MEDIUMBLOB | BLOB(16M) | MEDIUMBLOB | |||
| TEXT | TEXT | CLOB(64K) | VARCHAR(MAX) | VARCHAR2(4000 CHAR) | |
| BIGTEXT | CLOB(128K) | CLOB | |||
| VARCHAR | VARCHAR
 (если размер >255, то TEXT)  | 
VARCHAR | VARCHAR2 | ||
| CHAR | CHAR | ||||
| KEYTYPE | BIGINT UNSIGNED | BIGINT | VARCHAR2(15 CHAR) | ||
| INT | INT | INT | NUMBER(10) | ||
| INT UNSIGNED | INT UNSIGNED | ||||
| BIGINT | BIGINT | BIGINT | NUMBER(20) | ||
| BIGINT UNSIGNED | BIGINT UNSIGNED | ||||
| SMALLINT | SMALLINT | NUMBER(5) | |||
| DECIMAL | DECIMAL | NUMBER | |||
| CURRENCY | DECIMAL(18,2) | NUMBER(18,2) | |||
| DATE | DATE | ||||
| DATETIME | DATETIME | TIMESTAMP | DATETIME | TIMESTAMP | |
| TIMESTAMP | TIMESTAMP | ||||
| ENUM | ENUM | VARCHAR + CONSTRAINT | VARCHAR2 + CONSTRAINT | ||
| BOOL | ENUM('no','yes') | ||||