gpt4 book ai didi

mysql - 这是 mySQL 模式的好习惯吗?

转载 作者:搜寻专家 更新时间:2023-10-30 20:16:58 24 4
gpt4 key购买 nike

我在 mySQL 和数据库方面还算新手。我有一组公交车站和公交路线的数据。巴士站可以包含在不同的巴士 route 。最好有一个包含每个站点信息的站点表,一个包含每个路线信息的路线表,然后是另一个链接表来显示哪些公交车站位于哪些公交 route ?以下是示例架构:

停止

  • stop_id(主键)
  • 纬度
  • avg_daily_boarders

路线

  • route_id(主键)
  • 长度
  • 开始
  • 结束

链接?

  • entry_id(主键)
  • stop_id (FOREIGN KEY) REFERENCES 停止
  • route_id (FOREIGN KEY) 引用路线

最佳答案

我想说的是,了解数据的(数学)结构很重要。通常有多种方法可以表示相同的数据,哪种方法更好取决于数据库的用途。我会评论你的 table 。

您正在存储有关公交路线的信息。您可以将其视为图形上的路径(数学表示)。有几种方法可以存储此信息。首先,您肯定需要一张包含公交车站(图表的顶点)的表格,这样就不会错了。其次,您需要存储路径。这里有两个选项,您可以将它们存储为点序列或边序列。顺序很重要。您目前不存储订单,我肯定会建议将它放在某个地方。您还可以选择按边存储路径,即成对的停靠点。同样,顺序很重要。您为每条路线存储起点和终点,您可以选择这样做,但重要的是要了解这本身并不是必需的(取决于您的数据库的目的)。

一般建议:明确您希望如何在抽象级别上表示您的数据。

这里是我的建议,对您的 table 进行了最小的改动:

停止

  • stop_id(主键)
  • 纬度
  • avg_daily_boarders

路线

  • route_id(主键)
  • 长度
  • 开始
  • 结束

链接?

  • entry_id(主键)
  • stop_id (FOREIGN KEY) REFERENCES 停止
  • route_id (FOREIGN KEY) 引用路线
  • sequence_nr 这样 stop_id 是路线 route_id 上的第 sequence_nr 个停靠点,因此 (route_id,sequence_nr) 对必须是唯一的

关于mysql - 这是 mySQL 模式的好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34479800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com