2014-12-12 2 views
3

Композитные индексы - предмет, в котором я не полностью опытен, я не был уверен, что я делаю это правильно? Или если Laravel правильно анализирует мой код при переносе. Правильно ли это выглядит?Laravel 5 - Составные ключевые индексы при миграции

Schema::create('friends', function(Blueprint $table) 
{ 
    $table->increments('id'); 
    $table->integer('requester_id')->unsigned(); 
    $table->integer('requestee_id')->unsigned(); 
    $table->timestamps(); 

    $table->foreign('requester_id')->references('id')->on('users'); 
    $table->foreign('requestee_id')->references('id')->on('users'); 

    $table->unique(['requester_id', 'requestee_id'], 'composite_index'); 
}); 

Вот что Sequel Pro показывает:

http://i.imgur.com/5A4LZH3.png

ответ

4

Что там у вас правильно.


Примечание: вы не имеют чтобы указать имя индекса. Laravel автоматически генерирует имя для вас на основе индексированных столбцов.

+0

Спасибо, я индексируется имя просто так было легче понять на картинке. –

1

Вот мой пример: создание уникальной external_id для каждого пользователя user_id:

Schema::create('orders', function (Blueprint $table) { 
     $table->increments('id'); 

     $table->string('external_id')->nullable(); 
     $table->unique(['external_id', 'user_id']); // <<--------- 

     $table->integer('user_id')->unsigned()->index(); 
     $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); 

     // ... 
    }); 
Смежные вопросы