【问题标题】:How to store objects in a database for retrieval如何将对象存储在数据库中以进行检索
【发布时间】:2011-10-11 12:16:55
【问题描述】:

我正在尝试创建一个可用于存储大量对象的数据库。我试图用关系数据库来做到这一点,但它似乎有点像野兽。我的意思是取下面的简单对象

Object = {
   "Type":"Car",
   "Color":"Green",
   "Doors":3,
   Wheels:{
       "Material":"Alloy",
       "Size":17,
       "Color":"Black",
       "Tyres":{
          "Profile":"Low",
          "Material":"Rubber"
          "Tread":"Slick"
       }
   },
   Seats:{
       "Number":2,
       "Seatbelts":true
   }
}

从这些您可以想象一辆 3 门绿色汽车,配备黑色 17 英寸合金轮毂、低调、光滑的橡胶轮胎、2 个带安全带的座椅。显然,这整个对象不是一成不变的,你可以去扩展一些东西

(例如。

Seatbelt:{
    "Type":"Harness",
    "Buckles":1,
    "Color":"Blue"
}

)

最终,假设有很多对象,我想返回具有这些特征的对象列表

{
"Type":"Car"
"Doors":3
}

从这里我可能会得到一个有 3 个门但具有各种其他属性的 5 辆汽车的列表,没关系,我没有指定这些标准。我可以进一步缩小范围,寻找所有带光面轮胎的 3 门汽车......我可能会回来 2

{
   "Type":"Car"
   "Doors":3
   "Wheels":{
      "Tyres":{
         "Tread":"Slick"
      }
   }
}

所以我在想一个有 3 个主表的数据库:对象、属性和值。然后有链接表,将对象链接到属性,将属性链接到值。但是,如果像示例中一样,我有包含对象的对象,并且如果我计划拥有一个 car 对象,该示例可以作为该示例的扩展?

我们如何处理这种类型的数据库问题?可以使用关系数据库完成还是需要面向对象的数据库?如果是这样,是否有任何 OODB 可以像 MySQL 一样轻松地在网站上实现。

如果您可以使用 RDB 来执行此操作,那么查询肯定会占用大量资源吗? OODB 怎么样?作为资源密集型?

如何为网站制作面向对象的数据库?使用RDB或OODB,我不介意,就是这样

【问题讨论】:

  • 为此使用关系数据库看起来是个非常糟糕的主意。我听说过很多关于 NoSQL 数据库的信息,例如CouchDB 最近。他们可以完全按照您的意愿行事,并且可以很好地处理网站项目。

标签: database database-design object relational-database object-oriented-database


【解决方案1】:

我会看看 hibernate(用于 Java)或 nhibernate(用于 .net)。 http://www.hibernate.org

Hibernate 为关系数据库(如 MySql)提供 ORM(对象关系映射)

另一种解决方案(我个人不喜欢)对于少量数据是xml文件,然后您可以使用xpath表达式解析数据。 http://www.w3schools.com/xpath

【讨论】:

    猜你喜欢
    • 2017-04-03
    • 2014-02-09
    • 2020-08-09
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多