我有一个用户表和一个位置表。用户可以访问许多位置,许多用户可以访问位置。
我想返回用户未访问过的最近位置的按距离排序的结果。
这里出现了很多问题。无法使用连接表,因为结果最多会返回1000行。这意味着无法对位置和连接表执行选择,并保证排除所有匹配结果。即由于1000行限制,我无法使用whereNotContainedIn。
我不能使用关系,因为它们也遭受相同的1000行限制,因此无法保证准确的结果。
我可以使用指针或数组。指针用于一对一的关系,因此没有简单的方法可以附加到指针列表。数组内存很重,理想情况下不会超过100个条目,因此我不确定哪个是最佳选择。
以前是否有人必须进行此类查询?
答案 0 :(得分:0)
您可以创建另一个表(例如user_locations
),其中包含user_id
和location_id
作为外键。这将消除多对多关系。
http://www.tomjewett.com/dbdesign/dbdesign.php?page=manymany.php
这里有一个例子,(OrderLine
表)。