使用 sql 'like' 语句而不是 Laravel 中的多对一关系
using sql 'like' statement instead of many to one relationship in Laravel
我是 Laravel 的初学者,通常是关系 table 的初学者,我不确定如何使用 Laravel 关系。
想象一下,我们有一个包含汽车的 table。每辆车都有一个原产国。我认为我可以在每条记录(汽车)中插入国家名称,也可以为国家创建另一个 table 并在 Laravel 中建立多对一关系并为每辆车设置一个国家我的 table。第一选择有什么问题?
我在想,第二个可能是按国家/地区搜索 throw cars 的更好方法,但我们可以使用 SQL 中的 'like' 语句来实现。
我作为 sql 问题回答,因为我不使用 Laravel。
您需要 2 table:汽车和国家。如果你在汽车 table 上插入国家名称,你就会有重复的名称,如果出现拼写错误,你必须更新拼写错误的国家记录和所有具有相同错误的汽车记录。此外,如果您删除一个国家/地区,您最终可能会出现不一致:删除的国家/地区可能会保留在汽车上 table.
您可以在连接两个 table 后使用 like 语句:
SELECT cars.*, country.name
FROM cars, country
WHERE cars.id_country = country.id
AND country.name LIKE 'A%'
(您找到所有以 'A' 开头的国家/地区)。
我把这两个 table 想象成:
- cars(..., int id_country, ...) <- 此处没有国家名称!
- 国家(计数器 ID,varchar(64) 名称,...)
where cars.id_country references country(id): id_country is a 'foreign key' for 'primary key' country.id (如果你需要,你可以在任何地方找到这个定义它们以及如何在每个 dbms 中声明它们)。
我是 Laravel 的初学者,通常是关系 table 的初学者,我不确定如何使用 Laravel 关系。 想象一下,我们有一个包含汽车的 table。每辆车都有一个原产国。我认为我可以在每条记录(汽车)中插入国家名称,也可以为国家创建另一个 table 并在 Laravel 中建立多对一关系并为每辆车设置一个国家我的 table。第一选择有什么问题?
我在想,第二个可能是按国家/地区搜索 throw cars 的更好方法,但我们可以使用 SQL 中的 'like' 语句来实现。
我作为 sql 问题回答,因为我不使用 Laravel。
您需要 2 table:汽车和国家。如果你在汽车 table 上插入国家名称,你就会有重复的名称,如果出现拼写错误,你必须更新拼写错误的国家记录和所有具有相同错误的汽车记录。此外,如果您删除一个国家/地区,您最终可能会出现不一致:删除的国家/地区可能会保留在汽车上 table.
您可以在连接两个 table 后使用 like 语句:
SELECT cars.*, country.name
FROM cars, country
WHERE cars.id_country = country.id
AND country.name LIKE 'A%'
(您找到所有以 'A' 开头的国家/地区)。
我把这两个 table 想象成:
- cars(..., int id_country, ...) <- 此处没有国家名称!
- 国家(计数器 ID,varchar(64) 名称,...)
where cars.id_country references country(id): id_country is a 'foreign key' for 'primary key' country.id (如果你需要,你可以在任何地方找到这个定义它们以及如何在每个 dbms 中声明它们)。