首页 > 解决方案 > 每次我创建不同的增量

问题描述

所以我有这张桌子。我想创建具有不同 ID 的项目,但它必须在同一个表中,所以我制作了 2 个不同的 ID 类型。

|--------------------------------------|
|id | idtype1 | idtype2 | Project_name |
|--------------------------------------|

如果我用 idtype1 创建一个项目,idtype1 会增加,但 idtype2 仍然

|--------------------------------------|
|id | idtype1 | idtype2 | Project_name |
|--------------------------------------|
| 1 |    1    |    0    |     name1    |
| 2 |    2    |    0    |     name2    |
|--------------------------------------|

但是如果我用 idtype2 创建一个项目,它会做相反的事情

|--------------------------------------|
|id | idtype1 | idtype2 | Project_name |
|--------------------------------------|
| 1 |    1    |    0    |     name1    |
| 2 |    2    |    0    |     name2    |
| 3 |    0    |    1    |     name3    |
| 4 |    0    |    2    |     name4    |
|--------------------------------------|

这可能吗 ?如何 ?

标签: mysqllaravelauto-increment

解决方案


听起来您想要三列:id、idtype1 和 idtype2 都自动递增?如果是这样,您可以在迁移中定义它 $table->increments('idtype1'); 如https://laravel.com/docs/master/migrations中所述。但是,值得注意的是,所有三列将始终具有彼此相同的值,因此您可能需要重新考虑为什么需要所有三列。

idtype1 和 idtype2 非常模糊,不传达任何含义。这些代表什么?如果您能以他们的名义传达他们所代表的内容,事情将会有所改善。

这些id是其他表中的相关记录吗?如果是这样,您应该使用其他表名来命名它们,例如 type_id 或 address_id。

然后,您还可以考虑设置外键信息,以便数据库了解关系并帮助您强制执行完整性。


推荐阅读