Mysql 列限制。使用一个 table 还是创建一个新的?

Mysql columns limit. Using one table or create a new one?

我想在 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 个 table (tbl_trip) 上,或者我是否必须额外制作 1 个 table (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和一个包含旅行的列。

如果你需要一个人有更多的行程,当然是一个(人)对许多(行程)所以你应该有一个table个人和一个行程。

在旅途中的那一点 table 您可以搜索人员 ID 或类似信息。

如果只是行程和搜索行程的问题,通常您只会使用一个 table。您可以搜索旅行,一旦获得搜索结果,您就可以按照自己的方式对它们进行排序。

加法

不用担心 MySQL table 的列数限制,该限制设置为 4096 列,所以应该没问题。 (参见 here

只要确保设置正确的索引,性能就不会降低。