参考网址: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的功能的实现
 谢谢~~

解决方案 »

  1.   

    每个座位图片下面隐藏一个checkbox,选中value为1,未选中value为0
    提交的时候就和处理普通checkbox一样了至于数据库设计,你可以做一个字段。
    有多少少个座位,这个字符串就多少位。
    因为没选的座位是0,选的座位是1,
    全未定座的时候就是0000000000000000..........
    全部定座的时候就是1111111111111111..........每次提交后,编辑页面收集来的checkbox,然后、拼接字符串直接更新DB就行了
      

  2.   

    那这个字段长度就弄得大一点嘛。
    一个剧场200个座位够多了吧?
    varchar200也不是什么特别的事情。
    对于已出售,维修中等等,那你就自己标识。
    例如已出售2,维修中3,情侣座a,A,b,B什么的标识
    你不会弄个3P的情侣座吧?那大小写就不够用了,得另外设计了这样checkbox的value就不是0,1了,你需要在初期标识的时候给checkbox制定好value。
    当然你可能得加个字段标明哪个位置属于什么种类的座位,在初期标识的时候设置value用
      

  3.   


    我的方案是:
    数据库:
    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>