Laravel Eloquent Index

137
12 августа 2019, 10:30

В общем читал тут книжку, и нашел там следующие примеры:

$table->unique('email');
$table->unique('email', 'optional_custom_index_name');
$table->index('email');
$table->index('email', 'optional_custom_index_name');
$table->dropUnique('contacts_email_unique');
$table->dropIndex('contacts_email_unique');
$table->dropForeign('contacts_user_id_foreign');

То есть первые два примера, уникальный индекс, как я понял это обычный индекс, но значения не могут повторяться, третий и четверый пример - это просто индекс, 5 и 6 удаление индекса (тут непонятно, остается ли сама колонка, или сносится тоько индекс), и последнее это удаление внешнего индекса. Так вот в чем вопрос. Я пишу все это дело так:

$table->integer('customer_id')->index();
$table->foreign('customer_id')->references('id')->on('customers')->onDelete('cascade');
Schema::table('customers', function (Blueprint $table) {
    $table->dropColumn('customer_group_id');
});

Первый пример создание индекса, я указываю что это integer, далее что это индекс. Я, видимо, идиот, но я думаю, что индекс может быть еще и string (поправьте, если я не прав). Второй пример это создание внешнего ключа, который также является и индексом. И третий - это при удалении миграции, мы сносим в таблице, к которой относится наш внешний ключ нужную колонку.

Собственно как лучше делать все это? Покажите примеры, как сейчас грамотно прописываются индекс и внешние ключи. Нормально ли, что у меня внешние ключи являются индексами?

READ ALSO
RBAC yii2 Не получается обновить свои посты

RBAC yii2 Не получается обновить свои посты

Этот код не работает то есть должны были видны кнопки update и delete на своем посту (захожу ползователем который создал этот пост) в странице view но кнопки...

97
XMLreader php обработка ошибок

XMLreader php обработка ошибок

заметил такую ошибку, если в файле есть дубль закрывающего тега DocBody, то ридер не может получить его данные:

83
Сложить возведенное в степень число со последующим на единицу больше

Сложить возведенное в степень число со последующим на единицу больше

Здравствуйте, как я могу выполнить такое? 1^1=1 1^1 + 2^2=5 1^1 + 2^2 + 3^3=31 1^1 + 2^2 + 3^3 + 4^4=284

90