php—使用sql“like”语句代替laravel中的多对一关系

1zmg4dgp  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(386)

关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。

10个月前关门了。
改进这个问题
我对laravel和关系表都是初学者,我不确定是否使用laravel关系。假设我们有一张table,里面有汽车。每辆车都有一个原产国。我想我可以在每个记录(car)中插入国家的名称,也可以为国家创建另一个表,在laravel中建立多对一关系,并为表中的每辆车设置一个国家。第一选择有什么问题?
我在想,第二种方法可能是一种更好的按国家搜索汽车的方法,但我们可以用sql中的“like”语句来实现。

dgjrabp2

dgjrabp21#

我的回答是sql问题,因为我不使用laravel。
你需要两张table:汽车和乡村。如果您在car表中插入国家名称,则会出现名称重复,如果输入错误,则必须更新拼写错误的国家记录和具有相同错误的所有car记录。此外,如果删除一个国家,可能会导致不一致:删除的国家可能会保留在car表中。
在对两个表进行联接之后,可以使用like语句:

SELECT cars.*, country.name
FROM cars, country
WHERE cars.id_country = country.id
AND country.name LIKE 'A%'

(你会发现所有的国家都以a开头)。
我把两张table想象成:
汽车(…,国际身份证\国家,…)<-这里没有国家名称!
国家(计数器id,varchar(64)名称,…)
其中cars.id\u country引用country(id):id\u country是'primary key'country.id的'foreign key'(如果需要这些定义以及如何在每个dbms中声明它们,您可以在任何地方找到这些定义)。

相关问题