我有一个基于事件和分支的应用程序。我有两个事件,分支和没有。
事件和分支都有纬度和经度。
一个事件可以有多个分支。我想按距离从另一个地理坐标中对这些事件进行排序。
对于带分支的事件,它应该使用其分支的位置来计算它的接近程度,而不管它应该使用事件本身的位置。
在没有性能损失的情况下,这可以在MySQL中实现吗?或者我使用错误的数据库?我是否应该使用另一个带脚本的NOSQL数据库将当前的MySQL和Pod数据导出到它。
这是我在这个框架中使用ATM的基本查询,它添加了一点糖(显然这在普通的MySQL中不起作用),没有分支的事件似乎没有以正确的顺序出现。 / p>
SELECT
t.*,
DISTANCE(\"$latitude\", \"$longitude\",
IF(t.branches.latitude, t.branches.latitude, t.latitude),
IF(t.branches.longitude, t.branches.longitude, t.longitude)
) as distance
FROM table as t
ORDER BY distance.
答案 0 :(得分:2)
如果实体之间存在任何关系,您希望SQL减少管理这些关系的开销。 (业务逻辑,选择名称where event = something)
如果你想使用数据库进行普通存储,并使用服务器端语言(php,ruby,c#,无论它是什么)进行所有业务逻辑和关系管理,那么NOSQL就更好了。