Laravel уникальная индексация - PullRequest
0 голосов
/ 26 марта 2020

Я начинаю реализовывать функцию импорта, поэтому я создал новую таблицу импорта и модель, которая имеет идентификатор фильма, идентификатор пользователя и URL-адрес, принадлежащий каналу, но у меня есть вопрос, и я не уверен в ответе, учитывая У меня нет большого опыта работы с уникальной индексацией.

Миграция

  /**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::create('imports', function (Blueprint $table) {
        $table->uuid('id')->primary();
        $table->string('feed_url')->unique();
        $table->string('email')->unique();
        $table->uuid('user_id')->unique();
        $table->uuid('film_id');
    });
}

Если бы 2 разных пользователя хотели импортировать один и тот же фид, эти уникальные настройки, которые я установил, позволили бы или нет?

1 Ответ

0 голосов
/ 26 марта 2020

Если бы 2 разных пользователя хотели импортировать один и тот же фид, эти уникальные настройки, которые я установил, позволили бы это или нет?

Нет, не будет. Не используйте unique.

$table->string('feed_url');

Атрибут Unique указывает базе данных, что значение должно быть разным для всего столбца, независимо от того, какие другие столбцы содержат.


В качестве sidenote, избегайте использования индексов (INDEX, UNIQUE, PRIMARY) для строковых столбцов (VARCHAR, TEXT, ...), поскольку они влияют на производительность больших данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...