求一个功能的实现方案~~

时间:2022-08-31 14:41:39
参考网址:http://gd.118114.cn/moviebook/queryHallseat.action?showid=2857039&showseqno=&hallid=05&hallname=%E4%BA%94%E5%8F%B7%E5%8E%85&showtime=1755&price=38&pricecode=0&filmid=F2120&filmname=%E5%A4%BA%E5%91%BD%E5%BF%83%E8%B7%B3&showdate=2011-07-04&cityid=270002&spcode=sp002&cinemaid=30szjy&cinemaname=%E6%B7%B1%E5%9C%B3%E9%87%91%E9%80%B8%E5%BD%B1%E5%9F%8E&cinemalinkId=&accept_phone=

号码百事通 院线通的定座位的功能。。。。
求:1:数据库的设计方案
    2:java的功能的实现。。。
 谢谢~~

6 个解决方案

#1


先说说你自己的思路~~  没有免费的午餐

#2


每个座位图片下面隐藏一个checkbox,选中value为1,未选中value为0
提交的时候就和处理普通checkbox一样了

至于数据库设计,你可以做一个字段。
有多少少个座位,这个字符串就多少位。
因为没选的座位是0,选的座位是1,
全未定座的时候就是0000000000000000..........
全部定座的时候就是1111111111111111..........

每次提交后,编辑页面收集来的checkbox,然后、拼接字符串直接更新DB就行了

#3


引用 2 楼 sositesine 的回复:
每个座位图片下面隐藏一个checkbox,选中value为1,未选中value为0
提交的时候就和处理普通checkbox一样了

至于数据库设计,你可以做一个字段。
有多少少个座位,这个字符串就多少位。
因为没选的座位是0,选的座位是1,
全未定座的时候就是0000000000000000..........
全部定座的时候就是1111111111111111..........
……

座位的多少不固定,位置也不固定,而且座位有可以分为几种,已售出,情侣座,维修中 等等~~

#4


那这个字段长度就弄得大一点嘛。
一个剧场200个座位够多了吧?
varchar200也不是什么特别的事情。
对于已出售,维修中等等,那你就自己标识。
例如已出售2,维修中3,情侣座a,A,b,B什么的标识
你不会弄个3P的情侣座吧?那大小写就不够用了,得另外设计了

这样checkbox的value就不是0,1了,你需要在初期标识的时候给checkbox制定好value。
当然你可能得加个字段标明哪个位置属于什么种类的座位,在初期标识的时候设置value用

#5


引用 3 楼 roemin880405 的回复:
引用 2 楼 sositesine 的回复:
每个座位图片下面隐藏一个checkbox,选中value为1,未选中value为0
提交的时候就和处理普通checkbox一样了

至于数据库设计,你可以做一个字段。
有多少少个座位,这个字符串就多少位。
因为没选的座位是0,选的座位是1,
全未定座的时候就是0000000000000000..........
全部定座的时候就是111……


靠谱的

#6


引用 1 楼 zn85600301 的回复:
先说说你自己的思路~~ 没有免费的午餐


我的方案是:
数据库:
CREATE TABLE `yxt_seat` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `description` varchar(100) DEFAULT NULL COMMENT '述描',
  `seat_position` varchar(10) DEFAULT NULL COMMENT '置位',
  `seat_rows` int(11) DEFAULT '0' COMMENT '第二排',
  `seat_cols` int(11) DEFAULT '0' COMMENT '第二列',
  `types` int(11) DEFAULT '0' COMMENT '类型',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=241 DEFAULT CHARSET=gbk;

代码:
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="GBK"%>
<%@page import="com.yxt.dbconn.Dbconn"%>
<%
String[][] list = new String[11][11];
String[][][] list2 = new String[11][11][2];
Connection conn = null;
ResultSet rs = null;
PreparedStatement pst = null;
String sql = null;
int rows=0;
int cols=0;
//初始化
for(int i=1;i<=10;i++){
for(int j=1;j<=10;j++){
list[i][j] = String.valueOf(i)+String.valueOf(j);
}
}

conn = Dbconn.getConection();
try {
sql = "select * from yxt_seat ";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
while(rs.next()){
rows = rs.getInt("seat_rows");
cols = rs.getInt("seat_cols");
list2[rows][cols][0]=rs.getString("seat_position");
list2[rows][cols][1]=rs.getString("types");//1:普通座位,2:已售出,3:您已选的座位,4:情侣双人卡位,5:正在维修
}
  }catch (Exception ex) {
    ex.printStackTrace();
System.out.println("\nException: ");
} finally {
try { if (rs!=null){rs.close();} } catch (Exception e) { }
try { pst.close(); } catch (Exception e) { }
try { conn.close(); } catch (Exception e) { }

   
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head><link rel="stylesheet" type="text/css" href="css/style.css"></head>
 <body>
 
 <table>
 <%for(int i=1;i<=10;i++){%>
    <tr>
     <%for(int j=1;j<=10;j++){%>
     <td>
       <% if(list[i][j].equals(list2[i][j][0]) &&list2[i][j][0] !=null){ %>
         <%if("1".equals(list2[i][j][1])){ %>
     <a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/free.gif" /></a>
     <%}else if("2".equals(list2[i][j][1])){%>
     <a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/sale.gif" /></a>
     <%}else if("3".equals(list2[i][j][1])){%>
     <a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/lock.gif" /></a>
     <%}else if("4".equals(list2[i][j][1])){%>
     <a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/love.gif" /></a>
     <%}else if("5".equals(list2[i][j][1])){%>
     <a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/fix.gif" /></a>
     <%}%>
      <%} %>
     </td>
     <%}%>
    </tr>
  <%} %>  
 </table>

</body>
</html>


#1


先说说你自己的思路~~  没有免费的午餐

#2


每个座位图片下面隐藏一个checkbox,选中value为1,未选中value为0
提交的时候就和处理普通checkbox一样了

至于数据库设计,你可以做一个字段。
有多少少个座位,这个字符串就多少位。
因为没选的座位是0,选的座位是1,
全未定座的时候就是0000000000000000..........
全部定座的时候就是1111111111111111..........

每次提交后,编辑页面收集来的checkbox,然后、拼接字符串直接更新DB就行了

#3


引用 2 楼 sositesine 的回复:
每个座位图片下面隐藏一个checkbox,选中value为1,未选中value为0
提交的时候就和处理普通checkbox一样了

至于数据库设计,你可以做一个字段。
有多少少个座位,这个字符串就多少位。
因为没选的座位是0,选的座位是1,
全未定座的时候就是0000000000000000..........
全部定座的时候就是1111111111111111..........
……

座位的多少不固定,位置也不固定,而且座位有可以分为几种,已售出,情侣座,维修中 等等~~

#4


那这个字段长度就弄得大一点嘛。
一个剧场200个座位够多了吧?
varchar200也不是什么特别的事情。
对于已出售,维修中等等,那你就自己标识。
例如已出售2,维修中3,情侣座a,A,b,B什么的标识
你不会弄个3P的情侣座吧?那大小写就不够用了,得另外设计了

这样checkbox的value就不是0,1了,你需要在初期标识的时候给checkbox制定好value。
当然你可能得加个字段标明哪个位置属于什么种类的座位,在初期标识的时候设置value用

#5


引用 3 楼 roemin880405 的回复:
引用 2 楼 sositesine 的回复:
每个座位图片下面隐藏一个checkbox,选中value为1,未选中value为0
提交的时候就和处理普通checkbox一样了

至于数据库设计,你可以做一个字段。
有多少少个座位,这个字符串就多少位。
因为没选的座位是0,选的座位是1,
全未定座的时候就是0000000000000000..........
全部定座的时候就是111……


靠谱的

#6


引用 1 楼 zn85600301 的回复:
先说说你自己的思路~~ 没有免费的午餐


我的方案是:
数据库:
CREATE TABLE `yxt_seat` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `description` varchar(100) DEFAULT NULL COMMENT '述描',
  `seat_position` varchar(10) DEFAULT NULL COMMENT '置位',
  `seat_rows` int(11) DEFAULT '0' COMMENT '第二排',
  `seat_cols` int(11) DEFAULT '0' COMMENT '第二列',
  `types` int(11) DEFAULT '0' COMMENT '类型',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=241 DEFAULT CHARSET=gbk;

代码:
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="GBK"%>
<%@page import="com.yxt.dbconn.Dbconn"%>
<%
String[][] list = new String[11][11];
String[][][] list2 = new String[11][11][2];
Connection conn = null;
ResultSet rs = null;
PreparedStatement pst = null;
String sql = null;
int rows=0;
int cols=0;
//初始化
for(int i=1;i<=10;i++){
for(int j=1;j<=10;j++){
list[i][j] = String.valueOf(i)+String.valueOf(j);
}
}

conn = Dbconn.getConection();
try {
sql = "select * from yxt_seat ";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
while(rs.next()){
rows = rs.getInt("seat_rows");
cols = rs.getInt("seat_cols");
list2[rows][cols][0]=rs.getString("seat_position");
list2[rows][cols][1]=rs.getString("types");//1:普通座位,2:已售出,3:您已选的座位,4:情侣双人卡位,5:正在维修
}
  }catch (Exception ex) {
    ex.printStackTrace();
System.out.println("\nException: ");
} finally {
try { if (rs!=null){rs.close();} } catch (Exception e) { }
try { pst.close(); } catch (Exception e) { }
try { conn.close(); } catch (Exception e) { }

   
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head><link rel="stylesheet" type="text/css" href="css/style.css"></head>
 <body>
 
 <table>
 <%for(int i=1;i<=10;i++){%>
    <tr>
     <%for(int j=1;j<=10;j++){%>
     <td>
       <% if(list[i][j].equals(list2[i][j][0]) &&list2[i][j][0] !=null){ %>
         <%if("1".equals(list2[i][j][1])){ %>
     <a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/free.gif" /></a>
     <%}else if("2".equals(list2[i][j][1])){%>
     <a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/sale.gif" /></a>
     <%}else if("3".equals(list2[i][j][1])){%>
     <a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/lock.gif" /></a>
     <%}else if("4".equals(list2[i][j][1])){%>
     <a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/love.gif" /></a>
     <%}else if("5".equals(list2[i][j][1])){%>
     <a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/fix.gif" /></a>
     <%}%>
      <%} %>
     </td>
     <%}%>
    </tr>
  <%} %>  
 </table>

</body>
</html>


相关文章