售票系统的车票座位重号问题

billgatess 2002-10-13 08:53:23
本人在做一个车站售票系统,要求多个售票员可以同时出售任意时间、任意车次的车票,但要求售出的同一时间和同一车次的车票的作为不重号。后台数据库是 MS SQL7.0。
请问高手如何实现。

高分求解。也可以发邮件到:yesl@163.net
...全文
260 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ice2water 2002-10-14
  • 打赏
  • 举报
回复
用上面的方法同样可以完成
billgatess 2002-10-14
  • 打赏
  • 举报
回复
谢谢大家的指点,我会给大家分数的。
我的问题没有说清楚,现在补充一下:每个售票员可以同时出售任意车次和时间的车票,
并且要求一次可以售出多张。
kinglaw 2002-10-13
  • 打赏
  • 举报
回复
1、使用存储过程
使用存储过程取得车票座位吧,利用存储过程的不可重入可以解决重号问题

2、使用事务
在表中建立一个标志
用事务取车票座位,如下
begin tran
update 表 set 标志 = ...
取车票座位
commit
cjc79 2002-10-13
  • 打赏
  • 举报
回复
同意楼上的说法
ice2water 2002-10-13
  • 打赏
  • 举报
回复
在班次表中除班次及额定座位数外,另加一字段存放已售出座位数,在售票里也更改已售出座位数,即可解决并发问题。
handbyhand 2002-10-13
  • 打赏
  • 举报
回复
可做表:车次、车厢号、座位号、是否售出
并同时注意并发行问题。
pufan 2002-10-13
  • 打赏
  • 举报
回复
给你个思路.
建立座号字典表
车号 车厢号 座号 座位类型 价位 描述 等等...
建立售票表
班次 时间 车号 已售座号

售票时根据车号座位类型在售票表中找出已售座号集,根据座号集取出在座号字典表中的未售该座位类型的座号,然后随机选择一座号并在售票表插入此座号记录即可.
WangAQ 2002-10-13
  • 打赏
  • 举报
回复
座位号是你自己生成的?那要注意并发性的问题咯。
ice2water 2002-10-13
  • 打赏
  • 举报
回复
那就这样,设立一个表,存放班次及额定座位数,然后在售票时进行相应的检查:如果在售出票表中有空的座位号,先用空的座位号,如果没有,从已使用的最大座位号向后继续售票,直到所有的座位都售完。
billgatess 2002-10-13
  • 打赏
  • 举报
回复
这个方法很好,但我不想先生成所有班次的座位表,因为班次和时间是随时变化的。
ice2water 2002-10-13
  • 打赏
  • 举报
回复
首先,生成一个班次的所有座位号,在售票时首先将售票时间作为已售出标志写入表中,再进行车票的打印,如果该票未被售出或被退票,则将此标志设为null,这样每次售票前先查找,查找到后立即写上标志,即可保证座位号不重复。
billgatess 2002-10-13
  • 打赏
  • 举报
回复
不是票号,是座位号.我是在售出时生成座位号的,
打印车票之前,车票信息要显示给售票员看.
billgatess 2002-10-13
  • 打赏
  • 举报
回复
不是票号,是座位号.我是在售出时生成座位号的.
megnet 2002-10-13
  • 打赏
  • 举报
回复
你是在一张表里生成全部票号,每个票号对应一个 售出标记,
还是售出的时候生成票号?
若是后者,用自动编号即可。
若是前者,在做dw时在datawindow properties菜单里选 key and updateable column 即可。
billgatess 2002-10-13
  • 打赏
  • 举报
回复
分数不够可以追加分数。只要方案可行。

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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