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

时间:2015-08-09 10:46:50

标签: php mysql json normalization

我想在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'...  

但我很困惑,我只需将这些记录存储在一张桌子上( tbl_trip ),或者我是否需要增加一张桌子( 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
 .
 .

1 个答案:

答案 0 :(得分:2)

你应该问自己的问题是:

这是一对一关系还是一对多关系?

如果您需要一个人和一次旅行,以便每个人不能有一次以上的旅程,那么这个关系就是一个,所以请在旅途中制作一张桌子和一列。

如果你需要这个人有更多的旅行,当然是一个人(人)到多人(旅行),所以你应该有一个人的桌子和一个旅行。

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

如果只是旅行和寻找旅行的问题,通常你只会使用一张桌子。您可以搜索旅行,一旦获得搜索结果,就可以按照自己的方式对其进行排序。

<强>加成

不要担心MySQL表的列限制,限制设置为4096列,所以你应该没问题。 (见here

只需确保设置正确的索引,以便性能不会降低。