我想将行程详细信息存储在 mysql 数据库中。存储这些记录后,我想对这些记录执行某种搜索和排序操作。 喜欢:
....where from_city ='pune' OR from_pin ='411015' OR from_state ='MH' AND
to_city ='pune' OR to_pin ='411015' OR to_state ='MH' AND Ddeparting_date ='2015-08-06'...
但我很困惑是否必须将这些记录仅存储在 1 个表 (tbl_trip) 上,或者是否必须创建 1 个额外的表 (tbl_trip_extra_info),以便我可以轻松执行搜索和排序操作。
我不想让我的数据库变得太重。
对于这种情况最好的方法是什么有人指导我吗?
tbl_trip
trip_id | from | to | pickup_points | departing_date |..3 more
1 | address from1 | **** | ------- | 2015-08-06 |..3 more
2 | address from2 | ***** | ----- | 2015-08-07 |..3 more
.
.
tbl_trip_extra_info
trip_id| from_city | from_state| from_pin| from_rout | to_city | to_state| to_pin | to_rout
1 | pune |MH | 411015 | alandi road | pune |MH | 411015 | alandi road
2 | mumbai |MH | 412006 | patil road | pune |MH | 411015 | alandi road
.
.
最佳答案
您应该问自己的问题是:
这是一对一关系还是一对多关系?
如果您需要一个人一次旅行,并且每个人不能有多次旅行,则关系是一,因此请制作一张表和一列包含该旅行的列。
如果你需要一个人有更多的行程,当然是一对多(行程),所以你应该有一张人 table 和一张行程表。
此时,您可以在行程表中搜索人员 ID 或类似信息。
如果只是行程和搜索行程的问题,通常您只会使用一张表。您可以搜索行程,获得搜索结果后,您可以按照您想要的方式对它们进行排序。
添加
不用担心 MySQL 表的列限制,限制设置为 4096 列,所以应该没问题。 (参见here)
只要确保设置正确的索引,这样性能就不会下降。
关于php - Mysql 列数限制。使用一张表还是创建一张新表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31903377/