我目前在设计数据库时遇到问题。我正在建立一个小型汽车共享平台,我很不确定如何存储'共享优惠'。
我有人从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/

10-13 00:48