DROP TABLE IF EXISTS `object_data`;

CREATE TABLE IF NOT EXISTS `object_data` (
    `id` BIGINT(11) NOT NULL COMMENT 'PK',
    `object_id` INT(11) NOT NULL COMMENT 'ИД объекта',
    `field_id` INT(11) NOT NULL COMMENT 'ИД поля',
    `value` TEXT NULL COMMENT 'Значение произвольного поля'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci COMMENT='Таблица данных произвольных полей объектов';

ALTER TABLE `object_data`
    ADD PRIMARY KEY (`id`),
    ADD KEY `object_id` (`object_id`),
    ADD KEY `field_id` (`field_id`),
    ADD KEY `value` (`value`(255));

ALTER TABLE `object_data`
    MODIFY `id` BIGINT(11) NOT NULL AUTO_INCREMENT;

ALTER TABLE `object_fields` ADD `is_required` TINYINT(4) DEFAULT NULL COMMENT 'Флаг, обязательное поле' AFTER `is_active`;
ALTER TABLE `object_fields` ADD KEY `is_required` (`is_required`);