Конфигурация индексов

Как задать индексы в конфиге

 

{
    "title": "Пользоатель системы",
    "properties": {
        ...
    },
    "table": {
        "columns": {
            ...
        },
        "indexes": {
            "primaryKey": {
                "type": "primaryKey",
                "fields": {
                    "id": [
                        
                    ]
                }
            },
            "login": {
                "type": "unique",
                "fields": {
                    "login": {
                        "length": 255,
                        "order": "asc|desc",
                        "position": 1000
                    }
                }
            }
        },
        "name": "capsule_user"
    }
}

 

Параметр type определяет тип индекса.

Определение типов:

"type": "значение" необязательный атрибут

/^primary/i - PRIMARY KEY

/^unique/i - UNIQUE KEY

/^fulltext/i - FULLTEXT KEY

Значение по умолчанию KEY, его указывать не нужно.

"order": "asc|desc" не поддерживается в MySQL

Порядок полей в индексе определяется их взаиморасположением в конфиге.

"position": INT принудительно задать порядок полей в индексе

Имя индекса это ключ объекта indexes

Если тип индекса /^primary/i - PRIMARY KEY, то имя индекса игнорируется.

Чтобы убрать индекс или поле из индекса, необходимо задать ему значение null.