【发布时间】:2021-07-26 16:15:52
【问题描述】:
我有 3 个表,其架构如下所示
countries (rows: 250)
+------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------------+------+-----+---------+----------------+
| id | bigint(20) unsigned | NO | PRI | | auto_increment |
| name | varchar(255) | NO | | | |
| code | varchar(255) | NO | UNI | | |country code
| phone_code | varchar(255) | NO | | | |
| region | varchar(255) | NO | | | |
| subregion | varchar(255) | NO | | | |
| created_at | timestamp | YES | | | |
| updated_at | timestamp | YES | | | |
| deleted_at | timestamp | YES | | | |
+------------+---------------------+------+-----+---------+----------------+
states (rows: 4866)
+-------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+----------------+
| id | bigint(20) unsigned | NO | PRI | | auto_increment |
| name | varchar(255) | NO | | | |
| country_code| varchar(255) | NO | MUL | | | this is country code
| state_code | varchar(255) | YES | | | |
| lat | varchar(255) | YES | | | |
| lon | varchar(255) | YES | | | |
| created_at | timestamp | YES | | | |
| updated_at | timestamp | YES | | | |
| deleted_at | timestamp | YES | | | |
+-------------+---------------------+------+-----+---------+----------------+
cities (rows: 146068)
+------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------------+------+-----+---------+----------------+
| id | bigint(20) unsigned | NO | PRI | | auto_increment |
| name | varchar(255) | NO | | | |
| lat | varchar(255) | YES | | | |
| lng | varchar(255) | YES | | | |
| population | varchar(255) | YES | | | |
| state_code | varchar(255) | NO | | | |state code not unique
| created_at | timestamp | YES | | | |
| updated_at | timestamp | YES | | | |
| deleted_at | timestamp | YES | | | |
+------------+---------------------+------+-----+---------+----------------+
我正在使用 quickadminpanel 来生成这些 CRUD,但主要问题是我从 csv 文件中导入了这些 git link for csv 和 csvimport 特征,如 https://pastebin.com/G9z8Rjf1
有什么方法可以在这三个表之间建立关系
country:code and state:country_code 关系和state:state_code and city:state_code
关系,因为我无法手动添加州(行:4866)和城市(行:146068)
那么我怎样才能使用模型或任何更好的方式或任何更好的特质来建立关系呢?
【问题讨论】:
-
为什么不使用主键作为另一个表的引用键?
-
您可以使用国家表的主键是其他表的外键,如果您还想检索每条记录的国家代码,那么您可以简单地使用
with ()函数跨度> -
这就是我想做的,但要做到这一点,
code和country_code列应该匹配并使用模型或使用 db 建立关系,这并不重要 -
我如何将它与不同的表匹配我有很好的例子stackoverflow.com/a/57358462/15121609 但在这里他有搜索查询,但我在两个表中都有一个列可以得到那个?
-
您可以简单地将主键从 id 更改为 code
标签: laravel eloquent model traits laravel-8