3

如图
比如有一个旅游行程“上海到杭州、苏州旅游”
1、第一天去杭州,行程中有交通、多个景点、吃饭和住宿信息
2、第二天去苏州,行程中也有交通、景点等其他信息
应该如何设计mysql的数据表的结构?

图片描述

nemesiszh 319
2018-12-13 提问
6 个回答
4

已采纳

谢邀,你的需求注意表关联性不要太强。会导致后期维护成本过高。
餐饮表与交通表以及酒店表都应是独立的公共表。
主表计划表中存储json或序列化,将用户选择的餐饮,交通与酒店的信息统一存储,注意:这里要随当时下单价格一并存储到主表的字段内,旅游的酒店价格会随时变化,不应通过绑定方式查询。用户何时下单,所有价格应当定格在下单时的金额上。根据上述条件,你应建立以下数据表

公共表

  • 餐饮表(例如北京海底捞,上海海底捞,具体表字段与城市表关联)
  • 交通表(包括北京交通,上海交通等,具体表字段与城市表关联)
  • 城市表
  • 酒店表(例如北京如家、上海如家,具体表字段与城市表关联)
  • 景点表(例如北京长城、北京颐和园、四川宽窄巷子,具体表字段与城市表关联)

主表
主表内应有plan_content 字段,用于存储上述用户所选信息,这里注意:存储的是实际订的酒店或者景点,并非是仅仅绑定酒店编码、景点编码。

看到你上述的其他回答回复,切记不应将酒店、景点、餐饮归类为一个project表,通过某个标识查询,首先这类设计会使表数据庞大并不易于处理,其次对表维护的成本也会提高。最后在大数据时代,所有信息存储到一个表内,实际为找“死”.

0

设立3张表
表1(主键,当前第x天,表3主键,表3主键,表3主键,表3主键)[主要信息]
表2(主键,表1主键,行程信息)[行程信息]
表3(主键,名称,时间,类别)[食宿信息]

0

首先你要对业务做抽象。

如果想在一个订单里把交通、景点、饮食和住宿等不同的业务比较和谐地结合起来,可以把它们都抽象成商品。表结构可以这样设计:

订单表:
id, order_no, all_price, contact_name, contact_mobile ...
商品表:
id, product_no, order_no, price, product_type, product_info, start_date_time, end_date_time
商品订单关联表
order_id, product_id

这样你就可以用不同的 product_type 表示不同的商品,只要新增 product_type 就可以很方便地接入新的商品。

0

其实这个问题可以是这样的,首先有基础的表
比如
1、景点表 包括景点介绍,景点门票等信息
2、交通之类的表
3、餐饮之类的表
最重要的就是把这几个表的信息汇总到一张行程表,我觉得你的困惑在于不定项的行程如何存表,这个可以
一、拆分成每一天,在用户建立行程的时候插入一条数据。
二、将整个流程变成一条数据,比如流程是一个json的对象,无论多少天,无论每一天多少项目,一股脑的全部变成字符串存进去,

0

设计数据表的时候两个基本要求:

  1. 满足需求
  2. 适当的时候满足性能要求

两个表应该可以满足需求了。

  1. 行程主表(行程ID,用户ID,起始地址,目的地址,出发日期,创建时间,等等,其他字段可以补上,比如备注等)
  2. 日程信息(日程ID,行程ID,当天第几天,类型(吃饭,住酒店),类型参数(JSON,mysql5.7支持),支持筛选)

由于有动态类型,每种动态类型的参数又不一致,所以用了JSON,这样可以满足筛选需求

1

感谢回复

nemesiszh · 2018年12月17日

添加评论
0
  1. 行程表(id,day_sequence,date,route,serial);(id,第几天,日期,路线,当前这个行程的编号--建议创建这个字段避免使用id--多天的行程使用同一个行程编号),以及其它能查寻到这个行程的字段,如用户信息
  2. 交通表(id,serial,time_spend,comment);(id,行程编号,耗时,详细内容:上海做旅游大巴到杭州)
  3. 景点表(id,serial,locate,comment,url); (id,行程编号,景点名称,游览备注:浏览西湖,图片地址) 这里可以录入多个景点信息,和行程编号serial一致即可
  4. 餐饮表(id,serial,meal_type,restaurant,comment,url);(id,行程编号,早中晚餐枚举,餐厅,餐饮记述,图片地址)
  5. 酒店表(id,serial,city,hotel,comment,url);(id,行程编号,落座城市,酒店名称,描述,图片地址)

此外,要做成行程记录的话,走到哪记录到哪的显示结果,以上每个表添加一个时间字段,查询出来周后排序展示;
图片地址可存放多张图片,图片地址自定义分隔符;
弊端:联表查询有点多

撰写答案

推广链接