一个MIS系统,要求用户可以随时增加或删除字段,改变表结构,则信息录入和查询等都要相应的变化,这样的系统怎么设计?我没什么思路啊。哪里有这样的系统能下?或有文章讨论这个问题的?我想参考参考。

解决方案 »

  1.   

    以前作过一个类似的东西,大致思路如下:
    建立一个用户表结构信息的表,包括字段名、名称、类型以及其它信息,此表用户可以修改,在用户修改后保存时更新表结构。信息录入和查询时,先从用户表结构表中读取用户建立的表的结构信息,然后根据这些信息组织SQL,比较粗,不知道是否对你有帮助!
      

  2.   

    use a name value pair table, for example,1. product tablepid int
    name varchar(10)
    price decimal1, 'cleaner', 10002. product-property tablepid int
    name varchar(10)
    value varchar(20)1, 'weight','20'
    1, 'height','30'
    1, 'battery','10'
      

  3.   

    http://community.csdn.net/Expert/topic/3588/3588519.xml?temp=.2282526
    看我的回复,我就是那样实现的
      

  4.   

    那么楼主,给数据库添加子段不是好的做法。呵呵,我的做法和saucer(思归)的一样。 public interface IBus
    {
    string BusId{ get;set; }
    string BusName{ get;set; }
    string BusFrom{ get;set; }
    /// <summary>
    /// IProperty的集合
    /// </summary>
    ICollection Properties{ get;set;} }
    /// <summary>
    /// 属性
    /// </summary>
    public interface IProperty
    {
    string PropertyId{ get;set; }
    string PropertyName{ get;set; }
    string PropertyValue{ get;set; }
    }
      

  5.   

    很显然,Bus对象实体的Properties那里的信息是对象实体很普通的属性,那些不存在和其他业务上的关联。
      

  6.   

    1.如果sql提供足够的权限,完全可以动态建表的
    2.弄清楚客户的意思,有时候实现他们的功能不一定要动态创建表的
      

  7.   

    TO  saucer(思归) :
        我看不懂啊,你能不能多说两句?