php - Mysql 列数限制。使用一张表还是创建一张新表?

标签 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'...  

但我很困惑是否必须将这些记录仅存储在 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/

相关文章:

php - 使用 Propel 连接的名称属性

php - 如何将选定的 MySQL 数据导出到 Excel 电子表格

mysql - 根据MySql中的条件值合并保留部分数据的重复记录

python - Django REST Framework 嵌套序列化器 FK 创建

php - cakePHP 和 EasyPHP 无法烘焙

php - 将 jQuery 值传递给 PHP 函数

php - 使用 jquery 和 php 处理目录中的文件 - 获取状态并更新进度条

MySQL 禁用和启用 key

java - Camel 在死信队列中序列化json

android - 如何创建具有一定复杂性的 JSON 数据?