我目前在设计数据库时遇到问题。我正在建立一个小型汽车共享平台,我很不确定如何存储'共享优惠'。
我有人从A到D(通过B,C)旅行
A→B→C→D
我从C区到D区。
我想把第一次旅行分成几个小段(A→B,B→C,C→D)。如果B上有一个“连接”,我可以找到a→C之间的连接。但是如果中间步骤更多,这将变得非常缓慢(我想),请记住,您不应该在一次行驶中更换驾驶员/汽车。
我读了一些关于“嵌套集”的文章,想建立一棵树。但我不确定这种方法是否适合我的问题,因为我没有根(而且我不知道如何在sql中遍历该树)。现在我不知道从哪里开始。如果您确认使用嵌套集,我将深入研究。
但我很欣赏其他的想法或建议
这是我的第一篇文章,我希望我做得对:)
最佳答案
在旅途中,每站一排怎么样,包括车站的订单号?这样地:
trip | stop | place
-----+------+------
1 | 1 | A
1 | 2 | B
1 | 3 | C
1 | 4 | D
这样你就可以很容易地找到从A到C的旅行:
SELECT t.trip
FROM trips t
JOIN trips s ON (
t.trip = s.trip AND
t.place = "A" AND
s.place = "C" AND
t.stop < s.stop
);
这样,查询将始终是相同的,而不考虑子字符串。
关于mysql - 旅行者的数据库设计,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5413268/