有一个问题一直没有想通,如果我要做一个公交查询系统,比如城市有公交线路50条,我需要将这写线路所对应的名称都输入到表里,那么一个线路的公交车的站点输入到一个字段里,还是每个站点都放在不同的字段里?
如果都放在一个字段里的话,比如:A,B,C,D,E,F,G 这些是2路公交车所经历的所有站。那么的需求是只查询D--F站,那么在把这些字符串都放在一个字段里的话,就得通过程序来截取字符串来取得。
如果放在不同的字段里,比如A,B,C,D,E,F,G 各占有一个字段,那么我要是查询D--F ,就得先select整张表,然后把各个字段里的值取出,再通过程序来截取。 但这种方法还有一点是,虽然说2路是有12站, 但是3路确有24个站,如果把2路和3路放在一张表里,那2路其他的字段岂不是得设置为null?
还有,如果把每个线路的车分别放在一张表里,那么城市50个线路就有50张表,100个线路就有100张表。
这些设计都不是特别的合理。主要是需求所致,如果查询一个线路的话,只显示从C点到G点,其他的站点不显示。
希望大家讨论一下,遇到这种情况应该如何设计数据表。
如果都放在一个字段里的话,比如:A,B,C,D,E,F,G 这些是2路公交车所经历的所有站。那么的需求是只查询D--F站,那么在把这些字符串都放在一个字段里的话,就得通过程序来截取字符串来取得。
如果放在不同的字段里,比如A,B,C,D,E,F,G 各占有一个字段,那么我要是查询D--F ,就得先select整张表,然后把各个字段里的值取出,再通过程序来截取。 但这种方法还有一点是,虽然说2路是有12站, 但是3路确有24个站,如果把2路和3路放在一张表里,那2路其他的字段岂不是得设置为null?
还有,如果把每个线路的车分别放在一张表里,那么城市50个线路就有50张表,100个线路就有100张表。
这些设计都不是特别的合理。主要是需求所致,如果查询一个线路的话,只显示从C点到G点,其他的站点不显示。
希望大家讨论一下,遇到这种情况应该如何设计数据表。
2 1
2 2
2 3站名对照表
站名ID 站名
1 A
2 B
3 C
101路, 5:00 ~22:00,10分钟,无人,2. 站点基本信息表(站点ID,名称,)
1, 长安街北,。。
2, 人民东路,。。3.线路信息表(线路ID,站点ID,序号,。。)