我来征集一些关于系统部分的设计意见

lovingprince 2008-06-20 03:45:13
目前有个关于机票销售系统的有一个需求是这样的:

机票代理商可以在系统上销售机票,每个代理商销售的机票可能只限定在某个城市,比如,A代理商只能销售从成都出发的机票,而B代理商可以销售全国各大城市出发的机票。

原来的设计是
1.将 全国的城市以代码表的形式存在一张city表中,其中有字段 CityId(序列),cityCode(城市代码),cityName(城市名)
2.每个代理商有一个可以出票的城市列表,都放在ticket_city表中,有字段id,cityId(外键city表),代理商ID(外键代理商表) ,这里可以表示代理商有多个出票城市

下面问题来了,如果A代理商可以销售全国的机票,那么ticket_city就会有city一样多的记录,如果B代理商可以销售除杭州之外的所有机票,那么差不多也和city一样多,这样就会造成ticket_city表记录成倍增长。而且对这些代理商进行城市维护也不太方便。请问各位有没有什么好设计方法或者经验可以解决这个问题?

目前正在考虑重新设计这部分,具体设计方案正在研究中,各位有什么好的意见。

...全文
153 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovingprince 2008-06-23
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 sagezk 的回复:]
1. CityId(序列), CityCode(城市代码)好像重复了,CityCode 做主键就行。
2. 建一个城市分组表,groupid,groupname,cityids(成员城市id列表)。
3. ticket_city 表加一个字段,groupid(外键),cityid 和 groupid 二选一存储,如果有 cityid 则忽略 groupid。
业务逻辑会稍复杂点,但存储数据量能少点。怎么取舍就看需求了。
[/Quote]

恩,不错,呵呵,引入组的概念,如果很多代理商都有相同的多个销售城市的话,的确要节省不少存储空间。呵呵。
sagezk 2008-06-23
  • 打赏
  • 举报
回复
1. CityId(序列), CityCode(城市代码)好像重复了,CityCode 做主键就行。
2. 建一个城市分组表,groupid,groupname,cityids(成员城市id列表)。
3. ticket_city 表加一个字段,groupid(外键),cityid 和 groupid 二选一存储,如果有 cityid 则忽略 groupid。
业务逻辑会稍复杂点,但存储数据量能少点。怎么取舍就看需求了。
lovingprince 2008-06-23
  • 打赏
  • 举报
回复
晕,有分没人要啊。快来给点建议撒,呵呵e
lovingprince 2008-06-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zwgs1985 的回复:]
如果在表的设计中简单了,那么在业务处就复杂了
判断代理商经营的城市特点,如国基本都能代理,那么表中只存不能代理的城市,反之,则只存能代理的城市,加一个字段,区分库中存的是能代理的城市还是不能代理的城市
这样表结构简单了,不过在业务处理上就复杂了,要进行判断、筛选
PS:不是很了解你的业务,不知道说的对不对,就当胡侃了....哈哈
[/Quote]

你的设计方法我也考虑过,其实就是维护一些规则,存少的在里面。这样表中数据倒是少,估计业务处理起来很复杂了就。 原来的设计方式按照估计的话,全国大概300个出票城市。 使用我们系统的代理商假设每个城市3家,那么就有900家,假设都可以出全国票的话,那么ticket_city就有900*300=27W条记录。这个应该是在未来3-5内封顶的记录数。如果按照添加规则的方式,那么基本上就900条记录就可以搞定,当然业务上处理起来就要进行规则运算。还是得衡量一下啊
zwgs1985 2008-06-20
  • 打赏
  • 举报
回复
如果在表的设计中简单了,那么在业务处就复杂了
判断代理商经营的城市特点,如国基本都能代理,那么表中只存不能代理的城市,反之,则只存能代理的城市,加一个字段,区分库中存的是能代理的城市还是不能代理的城市
这样表结构简单了,不过在业务处理上就复杂了,要进行判断、筛选
PS:不是很了解你的业务,不知道说的对不对,就当胡侃了....哈哈
lovingprince 2008-06-20
  • 打赏
  • 举报
回复
没有人进来提点意见啊,晕哦。

目前的问题的是,要是以后增加一个城市,那么代理商要卖全国机票的话,都得给他在ticket_city中增加进去,这个比较烦人。
sagezk 2008-06-20
  • 打赏
  • 举报
回复
!markit!
liuzi123 2008-06-20
  • 打赏
  • 举报
回复
关注下................... 
lovingprince 2008-06-20
  • 打赏
  • 举报
回复
代理商和城市本来就是多对多的关系了。只是想在设计中能不能弱化这种关系,因为维护这么多城市本身就很老火。
lovingprince 2008-06-20
  • 打赏
  • 举报
回复
目前的设计明显就是一个多对多的例子啊,ticket_city不过是代理商和city之间的中间表而已。你们说的多对多是什么意思?呵呵。不会是打马虎眼吧
zjx41708515 2008-06-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 M_song 的回复:]
从多对多的角度来考虑,貌似只能这样了!
[/Quote] 同意!
M_song 2008-06-20
  • 打赏
  • 举报
回复
从多对多的角度来考虑,貌似只能这样了!
智慧党建系统是一个基于Spring Boot框架的Web应用,旨在为党组织提供现代化的管理工具和服务。该系统通过数字化手段,优化党建工作流程,增强党员之间的交流互动,并提升党务管理的透明度和效率。 系统的主要功能包括: 1. 党员信息管理:维护党员数据库,记录每位党员的基本信息、党费缴纳情况、活动参与记录等。 2. 组织生活管理:安排和管理党内会议、学习培训、民主评议等活动。 3. 学习教育平台:提供在线学习资源库,支持视频讲座、文章阅读等多种学习方式,并跟踪党员学习进度。 4. 党费管理:自动化党费收缴流程,提供便捷的在线缴费渠道,并生成缴费记录报告。 5. 意见征集与反馈:建立党员意见征集机制,收集党员对党务公开、党内政策等方面的意见和建议。 6. 党务公开透明:发布党务公开信息,包括决策过程、执行情况和党组织结构等。 7. 移动适应性:支持移动端访问,确保党员能随时随地参与党建活动和学习。 8. 权限管理与安全性:严格的用户认证和授权机制,确保不同级别的用户只能访问对应的数据和功能。 本系统采用前后端分离的开发模式,前端可能使用React、Angular或Vue.js等现代JavaScript框架来构建用户界面,后端则利用Spring Boot提供的快速开发能力实现RESTful API接口。数据库通常选用MySQL或其他关系型数据库来存储党员信息、活动记录和教育资源等数据。 Spring Boot的使用使得项目具有快速搭建和易于部署维护的特点,同时Spring Boot生态系统中丰富的插件和组件支持了系统的快速开发和扩展。系统还考虑到了易用性和无障碍访问,使得不同水平的用户都能轻松上手。 总体而言,基于Spring Boot的智慧党建系统提供了一个全面、高效、互动的党建管理环境,极大地促进了党建工作的现代化和信息化,是现代党务管理技术中的重要组成部分
V1.14GBK版本修复V1.13版本中站长们提交的多个BUG及改进,站长们发现BUG和建议,欢迎到114啦论坛讨论. 114啦网址导航是目前国内使用率最高的网址导航之一,该网址导航生成系统为雨林木风自主研发,现正式开源宣传,将帮助更多站长轻松搭建网址导航网站。 114啦网址导航始建于2007年1月15日,本站的宗旨是为网民提供精彩实用的网址大全,减少人们为记忆繁杂网站域名的烦恼;随着用户需求的不断增加,我们也尽所能提供用户需要的各类上网服务,在此感谢一直以来支持本站的朋友们。我们的力量是极有限的,本次开源一是希望把这份分享精神传达给有志于服务用户的站长朋友们,希望合我们之手,让更多人得到优秀的导航服务;二是希望能抛砖引玉,希望从事程序开发的朋友们能提供给我们宝贵意见,让我们在积极进行开发中的新版本有新的元素,甚至希望能借此机会邀请有实力的程序员加入我们(应聘由此进)。 114啦网址导航建站系统V1.14是雨林木风为了向站长朋友们提供更好的服务,组建了专门的开发小组,并向广大站长公开征集了多个开发意见后进行研发的。它是继V1.12和V1.12为广大站长提供网址导航建站方案的又一力作,该产品较以往的版本有着质的飞跃。 本次着力开发的114啦网址导航建站系统V1.14版本,延续了以往的简单、易用、高效等产品特性,对程序内核进行了重大升级,规范了核心文件;对模板引擎做了较大的调整,在保留原有模板特性的同时,更侧重了规范、易用、和可扩展性,使模板制作变得更方便;管理后台操控性更好,增强了用户体验和各个操作的交互,并在功能等各个方面都做了升级。我们承诺将保持系统功能的改进,并针对站长需求进行功能的增加,保持后续版本的更新。 .# 对在线升级功能进行了改进,提高兼容性和稳定性。 .# 对程序进行优化,后台运行效率明显加快; .# 修改地方服务子分类不可修改Bug; .# 修复修改网址信息后自动跳转会出现2000秒倒数的Bug; .# 修复天气自动判断显示为“东莞”的Bug; .# 修复内页不能正常显示用户自定义背景的Bug; .# 修复名站切换栏“我的收藏”网址IE浏览器下不在新窗口打开的Bug; .# 修复部分环境下后台左侧菜单不显示的Bug; .# 改进批量导入网址功能; .# 修正清空关键词分类后静态生成出错的Bug; .# 修正生成分类为空分类时出错的Bug; V1.14 2010-01-01 版本升级列表 增加在线升级功能,自动判断升级,方便及时修复bug和后续版本升级; 对程序进行优化,增强程序兼容性,运行效率更高; 增加批量导入网址的功能,可在短时间内导入更多数据; 重写模版,简化模版标签,使用户制作模版更简单; 增加模版选择器模块,规范模版制作,方便站长用户使用多种模版; 优化首页搜索框调用和配置,使用户可以快速填入搜索联盟代码; 修改广告调用模式,用户可直接写入代码,增强可操控性; 新增站长需要的闹钟、滚动新闻、天气预报定制等功能; 调整和优化系统菜单的功能及相关说明,使站长更方便使用; 优化首页模版设计,与官方同步,经测试首页搜索框设计可增加搜索量; 改进网站管理,分类管理的用户体验,操作更方便快捷; 实现酷站导航分类独立化,改内页关联为独立设置,增强了可操作性; 实现“行业网站”模块化,可独立定制行业网站; 实现“地方服务”模块独立化,分列各省地方服务,丰富网站内容; 实现首页分类导航和酷站导航自适应拉伸,减轻站长调试负担; 修复V1.13版本中站长们提交的多个BUG及改进c,不一一列出; 站长们发现BUG和建议,欢迎到114啦论坛讨论;

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧