【mysql】根据旅游行程该如何设计mysql数据表的结构
如图
比如有一个旅游行程“上海到杭州、苏州旅游”
1、第一天去杭州,行程中有交通、多个景点、吃饭和住宿信息
2、第二天去苏州,行程中也有交通、景点等其他信息
应该如何设计mysql的数据表的结构?
回答
谢邀,你的需求注意表关联性不要太强。会导致后期维护成本过高。
餐饮表与交通表以及酒店表都应是独立的公共表。
主表计划表中存储json或序列化,将用户选择的餐饮,交通与酒店的信息统一存储,注意:这里要随当时下单价格一并存储到主表的字段内,旅游的酒店价格会随时变化,不应通过绑定方式查询。用户何时下单,所有价格应当定格在下单时的金额上。根据上述条件,你应建立以下数据表
公共表
- 餐饮表(例如北京海底捞,上海海底捞,具体表字段与城市表关联)
- 交通表(包括北京交通,上海交通等,具体表字段与城市表关联)
- 城市表
- 酒店表(例如北京如家、上海如家,具体表字段与城市表关联)
- 景点表(例如北京长城、北京颐和园、四川宽窄巷子,具体表字段与城市表关联)
主表
主表内应有plan_content 字段,用于存储上述用户所选信息,这里注意:存储的是实际订的酒店或者景点,并非是仅仅绑定酒店编码、景点编码。
看到你上述的其他回答回复,切记不应将酒店、景点、餐饮归类为一个project表,通过某个标识查询,首先这类设计会使表数据庞大并不易于处理,其次对表维护的成本也会提高。最后在大数据时代,所有信息存储到一个表内,实际为找“死”.
设立3张表
表1(主键,当前第x天,表3主键,表3主键,表3主键,表3主键)[主要信息]
表2(主键,表1主键,行程信息)[行程信息]
表3(主键,名称,时间,类别)[食宿信息]
首先你要对业务做抽象。
如果想在一个订单里把交通、景点、饮食和住宿等不同的业务比较和谐地结合起来,可以把它们都抽象成商品。表结构可以这样设计:
订单表: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 就可以很方便地接入新的商品。
其实这个问题可以是这样的,首先有基础的表
比如
1、景点表 包括景点介绍,景点门票等信息
2、交通之类的表
3、餐饮之类的表
最重要的就是把这几个表的信息汇总到一张行程表,我觉得你的困惑在于不定项的行程如何存表,这个可以
一、拆分成每一天,在用户建立行程的时候插入一条数据。
二、将整个流程变成一条数据,比如流程是一个json的对象,无论多少天,无论每一天多少项目,一股脑的全部变成字符串存进去,
设计数据表的时候两个基本要求:
- 满足需求
- 适当的时候满足性能要求
两个表应该可以满足需求了。
- 行程主表(行程ID,用户ID,起始地址,目的地址,出发日期,创建时间,等等,其他字段可以补上,比如备注等)
- 日程信息(日程ID,行程ID,当天第几天,类型(吃饭,住酒店),类型参数(JSON,mysql5.7支持),支持筛选)
由于有动态类型,每种动态类型的参数又不一致,所以用了JSON,这样可以满足筛选需求
- 行程表(
id
,day_sequence
,date
,route
,serial
);(id,第几天,日期,路线,当前这个行程的编号--建议创建这个字段避免使用id--多天的行程使用同一个行程编号),以及其它能查寻到这个行程的字段,如用户信息 - 交通表(
id
,serial
,time_spend
,comment
);(id,行程编号,耗时,详细内容:上海做旅游大巴到杭州) - 景点表(
id
,serial
,locate
,comment
,url
); (id,行程编号,景点名称,游览备注:浏览西湖,图片地址) 这里可以录入多个景点信息,和行程编号serial一致即可 - 餐饮表(
id
,serial
,meal_type
,restaurant
,comment
,url
);(id,行程编号,早中晚餐枚举,餐厅,餐饮记述,图片地址) - 酒店表(
id
,serial
,city
,hotel
,comment
,url
);(id,行程编号,落座城市,酒店名称,描述,图片地址)
此外,要做成行程记录的话,走到哪记录到哪的显示结果,以上每个表添加一个时间字段,查询出来周后排序展示;
图片地址可存放多张图片,图片地址自定义分隔符;
弊端:联表查询有点多
。
以上是 【mysql】根据旅游行程该如何设计mysql数据表的结构 的全部内容, 来源链接: utcz.com/a/72210.html