laravel - 如何创建唯一索引,这需要一组属性是唯一的?
问题描述
你好堆栈溢出器
我想出了一个关于 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 的组合在我的数据库中只存在一次。)
我希望有人有一些花哨的技巧来解决这个问题。
感谢您的帮助!
戴夫
解决方案
您可以将 3 列组合在一个唯一索引中
$table->unique(['adress', 'houseNumber', 'houseNumberAddition']);
推荐阅读
- javascript - 错误类型错误:构造函数映射需要 ES5 中的“新”?
- python - 如何获得最接近列表的值?
- telegram-bot - 如何仅知道令牌就更改 Telegram Bot 设置
- c - 我们如何访问 GDB 中的可变参数?
- python - 如何将带参数的函数包装到带参数的包装器中?
- c++ - (C++) 没有参数参数名称的复制构造函数
- go - Go GitHub Actions 克隆私有存储库以从主代码中使用
- r - 在 r 中处理 scale()-d 数据集
- vue.js - 在 Vue 应用程序中导入全局 scss 样式以及单独的 mixin 和变量 scss 文件
- java - 是否可以将图像直接写入 Google Drive?