【问题标题】:How can I create unique index, that requires a set of attributes to be unique?如何创建唯一索引,这需要一组属性是唯一的?
【发布时间】:2021-12-15 05:34:38
【问题描述】:

你好堆栈溢出器

我在使用 Laravel 时遇到了一个问题,我不确定如何解决。

情况如下:

我得到了一个名为“地址”的迁移:

Schema::create('adresses', function (Blueprint $table) {
    $table->id();
    $table->string('adress'); //adress
    $table->integer('houseNumber'); //house number
    $table->string('houseNumberAddition')->nullable(); //house number addition
    $table->timestamps();
});

我想要实现的目标: 我希望地址、houseNumber 和 houseNumberAddition 一起成为 1 个唯一值。

通常您会添加 unique() 函数,以使特定字段唯一。 但我希望将 adress、houseNumber 和 houseNumberAddition 组合在一起,成为一个唯一值。

(因为 houseNumber 和 houseNumberAddition 会被多次使用,而与 adress、houseNumber 和 houseNumberAddition 的组合在我的数据库中只会存在一次。)

我希望有人能找到一些花哨的技巧来解决这个问题。

感谢您的帮助!

戴夫

【问题讨论】:

    标签: laravel database eloquent


    【解决方案1】:

    您可以将 3 列合并到一个唯一索引中

    $table->unique(['adress', 'houseNumber', 'houseNumberAddition']);
    

    【讨论】:

    • 谢谢。它看起来比我想象的要容易:-)
    猜你喜欢
    • 2017-02-28
    • 2012-03-12
    • 2011-04-17
    • 2013-05-10
    • 2019-02-18
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多