需求:大概有2000多种不同的检测证书(证书的数据完全不一样),请问怎么设计数据库才合理。
操作:
1、先由检测人员选择不同的证书,在录入检测的数据;
2、保存数据库到数据库中;
3、打印证书;下面是几个证书案例:
证书一:证书二:
证书三:
请各位大虾给给意见!!!!  谢谢!!!

解决方案 »

  1.   

    个人觉得每个类型的证书一个模板,存放在本地磁盘。
    SQL Server表存放证书的类型  以及路劲和一些其它属性然后前台程序根据所选证书名字  找到模板,并且显示到页面上,工作人员再输入需要填写的内容,然后程序做个打印功能,这样基本上可以实现了吧
      

  2.   


    问题是工作人员输入的数据存放到哪里啊(磁盘?数据库?)。。

    你放数据库最终也是放在磁盘上的。可以考虑直接以word文档的形式存放到磁盘上,数据库只放路劲。一个人调用这个模板,填好数据,保存的时候直接在数据库对应的表离添加一条记录,该记录记录这个人的相关信息和相关操作,还有他填写数据后生成的word文档的路劲
      

  3.   


    问题是工作人员输入的数据存放到哪里啊(磁盘?数据库?)。。

    你放数据库最终也是放在磁盘上的。可以考虑直接以word文档的形式存放到磁盘上,数据库只放路劲。一个人调用这个模板,填好数据,保存的时候直接在数据库对应的表离添加一条记录,该记录记录这个人的相关信息和相关操作,还有他填写数据后生成的word文档的路劲如果以你这种办法 那数据是不可查的 请问如果把信息保存到数据库有什么好办法处理吗???如果没办法 那得创建 几千个数据库表!!!!! 想想都恐怖!!!
      

  4.   

    SqlServer不是有Xml字段嘛,
    用这个字段存储证书的不同之处
      

  5.   

    嗯……试试第三方打印控件。
    (我用过lodop,感觉体积很小,可控制性也强,为例描述一下)1、数据库存放的数据基本一致。并单独建立一个字段“证书类型”,用于判断使用哪种证书模板。
    这样只需要查询数据即可。
    2、不同的证书,调用不同模板。
    修改好控件的参数,放置到单独的文件里,读取“证书类型”后判断使用。
      

  6.   

    刚看见说“数据类型不一致”的说明字段直接用data1,data2,data3,data4……保存顺序注意一下如果要省表的话,感觉这样比较折中。
      

  7.   

    2张表,一张表保存数据,所有的弄在一起
    id  检测证书类型  字段1  字段2   字段3
    1   校准证书1     00FX1  北京    神舟公司
    2   校准2         5558s  正常   不正常
    另一张表解释前一张表字段的意义
    id  检测证书类型  字段1  字段2   字段3
    1   校准证书1      编号  地址    公司
    2   校准2          编号  稳定值  重复性
      

  8.   

    直接将证书文件以XML或者doc的方式存入DB,当做大数据列处理。
    也可以应用全文检索进行查询。
    参考:http://msdn.microsoft.com/zh-cn/library/ms142531(v=sql.105).aspxPS:为神马要存数据库?非结构化数据,MSSQL本来就不擅长。直接保存为文件,再用c++或者别的技术,开发一个小的检索工具。不是很好吗?
      

  9.   

    我是19楼和20楼,昨晚想了一下打印控件的解决模式1、数据库只使用一个。
    ——注意必须有字段“证书类型”,类型int(搜索比较快),比如10001
    ——字段名称使用data001、data002、data003、data004、data005、data006……顺序结合好证书上的打印次序。
    ——注意预留一些null字段,也许以后需要增加数据,省得再去改动数据库了。
    ——自己做好字段字典2、打印控件lodop
    ——比较简洁的打印控件,体积很小,可控制性高,
    ——可以模拟出印章效果,如果需要实体章的话,打印后加盖,
    ——我记得lodop会自动生成模板文件,但没测试过是生成在服务器还是客户本机。无论是服务器还是本机速度都要快于读取数据库。
    ——页面中调用lodop代码部分全部做成文件,嵌入需要打印的地方。3、优势
    ——详细数据是data1、data2等字段,调用时相对比较简单,注意次序即可。
    ——打印控件模板维护比较简便,具备统一性,后期维护相对方便。
    ——打印部分与实际数据分离。
      

  10.   

    感觉这个方式对普通的数据库应用的人来说是一种比较好的方式!
    12#和25#的方法需要对SQLSERVER的存储方式有相当的了解。
      

  11.   

    不建议使用存储word到本机的“本地模式”,如果证书模板有改动的话(包括增加、修改、删除),做不到“统一部署”。
    无论什么方法,最好通过服务器(WEB服务器或者数据库服务器)。
      

  12.   

    xml这个只知道个大概,没有具体做过,不知道了。
    真不知道了。xml应该是偏重于存储数据的吧,理解为一个简易数据库
    (这个功能数据库就完全解决了)
    它不能解决多个证书格式的问题
      

  13.   

    有一个简单的办法:
    直接在image字段存文件的内容吧。
      

  14.   

    直接将证书文件以XML或者doc的方式存入DB,当做大数据列处理。
    也可以应用全文检索进行查询。
    参考:http://www.xsxs.net msdn.microsoft.com/zh-cn/library/ms142531(v=sql.105).aspxPS:为神马要存数据库?非结构化数据,MSSQL本来就不擅长。直接保存为文件,再用c++或者别的技术,开发一个小的检索工具。不是很好吗?
      

  15.   

    1.自己制作空白的证书模板(word文件)放入数据库中
    2.用户选择相应的证书模板,填入数据,然后一份新的word文件到数据库中
    3.打印word文件这样更方便点,否则这么多模板要建表,好累的
      

  16.   

    xml这个只知道个大概,没有具体做过,不知道了。
      

  17.   

    xml这个只知道个大概,没有具体做过,不知道了。
      

  18.   

    我是这样想的
    1、全部证书都有的分别建字段
    2、加一个证书类型字段
    3、data字段 保存其他不同之处的数据 可以保存 json 或者序列化
    这样就只需一个表例如
    id,certificate_no,apperance,data
    数据
    1 Z123456789 Normal {"background_noice":[{"mass":"9","background_noise":"4","technical":"<=5"},{"mass":"115","background_noise":"4","technical":"<=5"},{"mass":"209","background_noise":"4","technical":"<=5"}],"sensitivity":[{"element":"Be","mass":"9","sensitivity":"6","technical":">=5"},{"element":"Ln","mass":"115","sensitivity":"34","technical":">=30"},{"element":"Bi","mass":"209","sensitivity":"25","technical":">=20"}]}
      

  19.   

    如果是我,就直接保存 word 到数据库 + 全文索引