这个是OO与关系型数据库的结合问题,目前也还没有什么好的解决方案,在umlchina.com里的论坛精华区,关于“OO和UML”版块有很多讨论

解决方案 »

  1.   

    其实DataSet就是最好的解决方案。
    类型化的DataSet是最简单的数据对象。
    你可以看类型化DataSet的代码(默认是隐藏在xsd下的),从中你可以得到启发,应该是继承DataSet、DataTable、DataRow实现你所需的数据模型
      

  2.   

    可以有一个折中的方法,就不知道适不适用定义一个字段,比如这个字段可以容纳4K的文本,然后使用文本分割的方式存储,例如:[Name]cnming;[Age]18;[Address]Beijing;[Marriage]Too Early;[Sex]Yong Girl可以使用Like查询数据,例如 Like '*[Name]cnming*'必须承认,没有对象数据库正典但是我也无法知道如何对对象数据库按照某种条件查询
      

  3.   

    你说的对象数据库,是不是就是存储类对象?如果是那样,也不是很什么新概念,你看看MS的Access数据库的XP版,它有个OLE对象存储器.这个给我的感觉就是先把对象序列化然后存为文件,然后用流写入数据库,在读取的时候反过来就可以了.实际上只要你的对象实现了serialization就可以了.
      

  4.   

    to yarshray(saga jion) 差不多是这个意思,我目前需要的功能可能更类似cellblue(cellblue) 阐述的那种折中方法,但是以后我可能更需要一些别的功能,例如空间数据库模式OLE确实可以存储对象,但是却无法执行查询,只能取出纪录以后进行提取数据判断了to sqhua(拉长弓兮射天狼)我去看了umlchina.com,谢谢
    但是我还是不大理解,可能是我还没有真正入门,对象数据库是我和我的朋友讨论分析我想达到的一个问题之后他提出来的,但是他也不明白具体是怎么样的,特别是如何使用如果仅仅是存储问题yarshray(saga jion)阐述的已经是可以了
      

  5.   

    如果要查询,那么我建议,在每条记录前面加一个,int类型的字段相当于ID,这样应该可以吧.也就是说存储和查询分开,查询到的结果在和存储对应,那样应该可以.这只是我的一种设想.
      

  6.   

    如果那样的话,我开始觉得,可以用一般的数据结构来实现比如:连表,hash表,树等结构那样遍历表结构就实现了查找,删除,插入和更新这四个基本操作你觉得这样是否比较合理?
      

  7.   

    to  yarshray(saga jion) 这样处理将会使我的数据结构变成异常的复杂,就难免会有一些想不到的错误发生,而且无法满足满足以后的自动扩展
      

  8.   

    TO:cnming(cnming)如果采用面向对象的设计呢?也就是容器的概念数据结构是容器,数据结构封装成容器类.而嵌入对象就是数据.这样存储和操作就可以既分开有结合.如果要扩展就只用扩展存储容器.你认为呢?
      

  9.   

    >>如果数据库本身就可以读取对象里的内容感觉象DBMS+OS(灌水啊,别当真,我想不出来了)
      

  10.   

    给你一个实例,供参考:
    http://www.c-sharpcorner.com/Code/2002/Mar/SaveObjectsInDB.asp
      

  11.   

    I heard OODB vendor POET might be working on a .NET solution
      

  12.   

    take a look at (it is in java, but the idea is similar)Write once, persist anywhere 
    Implement a Data Access Object pattern framework 
    http://www.javaworld.com/javaworld/jw-03-2002/jw-0301-dao.html
      

  13.   

    to yarshray(saga jion) 如果采用面向对象的设计呢?也就是容器的概念数据结构是容器,数据结构封装成容器类.而嵌入对象就是数据.这样存储和操作就可以既分开有结合.如果要扩展就只用扩展初步理解你的这个方法,我认为是可以满足我的需求,但是我还不明白具体的细节,包括如何实现,能更详细点吗?
      

  14.   

    谢谢  GiantHard(展翅)这个确实是我想要得一部分,现在的主要问题是如何实现存储的对象的查询等等的问题,因为我们不可以把所有的记录全部取出然后再前台读取判断
      

  15.   

    看看思归的例子怎么样虽然是JAVA的但和C#差不多.
      

  16.   

    我参考了一下一些资料,你朋友说的,的确是有的但那些对象必须是定义在Oracle里如:该结构
    CREATE OR REPLACE TYPE employee AS OBJECT  (
       last_name               varchar(40),
       full_address            full_mailing_address_type,
       prior_employers         prior_employer_name_arr
    );
    create table emp of employee;使用上面定义的数据
    insert into emp
    values (
       'Burleson',
       full_mailing_address_type('7474 Airplane Ave.','Rocky Ford','NC','27445'),
       prior_employer_name_arr(
          employer_name('IBM'),
          employer_name('ATT'),
          employer_name('CNN')
       ) );这说明,Oracle也就是在SQL基础上加入了面向对象的概念.并非我之前所说的,使用对象来管理数据.我不知道,我所了解到的对不对,你在和你朋友联系一下.看看是不是我所理解到的这些.
      

  17.   

    to yarshray(saga jion(未出山的杨过)) 对,就是这样的,但是请问
    full_mailing_address_type 和 prior_employer_name_arr是如何定义的?我以前比较少定义这些,是不是和普通的Type和Array一样的定义?
    还有,请问如何使用带条件查找?例如,我想要取出属于包含 IBM 的所有的记录
    还有,这里头能定义一个方法吗?比如:
    CREATE OR REPLACE TYPE employee AS OBJECT  (
       EmployeeCount           int,
       last_name               varchar(40),
       full_address            full_mailing_address_type,
       prior_employers         prior_employer_name_arr
    );
    定义一个EmployeeCount ,使得每对prior_employers 修改的时候添加一个就对EmployeeCount加1,对了,这个现在我并非太需要,但是我认为还是需要了解一下谢谢
    to yarshray(saga jion(未出山的杨过)) 
      

  18.   

    关于Oracle数据库,我了解的也不多你为什么不找些相关的书籍和资料呢?
      

  19.   

    关于面向对象的数据库,找到一篇文章建议你看看对你概念上应该有一定帮助.http://www.ccidnet.com/tech/guide/2000/07/06/58_904.html
      

  20.   

    我也比较少使用Oracle,但是我感觉数据库应该都是差不多的,只是我的朋友他都是使用Oracle
    谢谢
      

  21.   

    等YUKON吧,据说直接在数据库里内建对.net的支持,应该可以支持OO
      

  22.   

    yarshray(saga jion(未出山的杨过)) 的答复我看还是比较准确的,但是也只能满足我现在的项目的需求,因为我现在的项目并不需要对对象进行操作
      

  23.   

    对象化的存储及对对象记录的查询。。可通过Oracle的spical引擎来实现。不过这类应用主要在GIS方面.
    你所说的完全可以实现。。
     
    还有在SQL上也有插件可以实现。不过都是在GIS的应用方面用以解决空间索引问题而提出的。。不过这本身也不关系型数据库,而是属于空间数据库。
    如果问题不是足够复杂。(起码没有本现出来他的长处的话。还是不要用的因为速度会变得剞慢)也可以考虚文件式数据库。外加一个索引文件(*Tree--Node)来实现
      

  24.   

    to andy_lv(晨野) 请问你是不是对GIS很熟?
    以前我曾经在一家公司打算规划出符合自己的GIS需求的空间数据库,但是不久就夭折了能有更多的见解不?
      

  25.   

    有篇文章Mapping Objects To Relational Databases谈到 对象-关系数据库之间的映射的,你可以参考。http://www.umlchina.net/zippdf/RelOO.zip  中文翻译的
    http://www.ambysoft.com/mappingObjects.html 原文btw:撇开关系数据库是否欠考虑。