User:
columns:
user_id: { type: integer, primary: true, notnull: true }
email: { type: string(80) }
password: { type: string(80) }
Form:
columns:
form_id: { type: integer, primary: true, notnull: true }
user_id: { type: integer, notnull: true }
title: { type: string(80) }
is_active: { type: boolean, notnull: true, default: 1 }
relations:
User: { onDelete: CASCADE, local: user_id, foreign: user_id, foreignAlias: Forms }
Field:
columns:
field_id: { type: integer, primary: true, notnull: true }
form_id: { type: integer, notnull: true }
field_name: { type: string(80) }
field_type: { type: enum, values: [ String, Integer, Float, LongText, Boolean] }
field_value: { type: string(80) }
relations:
Form: { onDelete: CASCADE, local: form_id, foreign: form_id, foreignAlias: Fields }
База данных MySQL, сгенерированная указанным выше YAML:
CREATE TABLE field
(
field_id
bigint (20) NOT NULL DEFAULT '0',
form_id
bigint (20) NOT NULL,
field_name
varchar (80) DEFAULT NULL,
field_type
enum ('String', 'Integer', 'Float', 'LongText', 'Boolean')NEFLL по умолчанию,
field_value
varchar (80) NULL по умолчанию,
первичный ключ (field_id
),
ключ form_id_idx
(form_id
),
ограничение + 1022 * ключ иностранныйform_id
) ССЫЛКИ form
(form_id
) НА УДАЛЕННОМ КАСКАДЕ
) ДВИГАТЕЛЬ = ДИАГРАММА ПО УМОЛЧАНИЮ InnoDB = latin1;
CREATE TABLE form
(
form_id
bigint (20) NOT NULL ПО УМОЛЧАНИЮ '0',
user_id
bigint (20) NOT NULL,
title
varchar (80) DEFAULT NULL,
is_active
tinyint (1) NOT NULL DEFAULT '1',
ПЕРВИЧНЫЙ КЛЮЧ (form_id
),
КЛЮЧ user_id_idx
(user_id
),
ОГРАНИЧЕНИЕform_user_id_user_user_id
ИНОСТРАННЫЙ КЛЮЧ (user_id
) ССЫЛКИ user
(user_id
) НА УДАЛЕННОМ КАСКАДЕ
) ENGINE = InnoDB CHARSET DEFAULT = latin1;
CREATE TABLE user
(
user_id
bigint (20) NOT NULL ПО УМОЛЧАНИЮ '0',
email
varchar (80) ПО УМОЛЧАНИЮ NULL,
password
varchar (80) DEFAULT NULL,
PRIMARY KEY (user_id
)
) ENGINE = InnoDB CHARSET DEFAULT = latin1;