2013-07-13 116 views
1

使用关系数据库和关系数据库对象(混合)有何不同?使用关系数据库和关系数据库对象的区别

我正在制作广告的应用程序。使用常见的关系数据库,我想我可以制作每种类型广告的表格:汽车,技术,房产,就业,服务,这是我做它的方式。但阅读关于关系数据库对象,我发现你可以创建一个数据库中的字段(Oracle)允许您封装其他字段和方法,那么如果我只制作一个广告表,知道所有广告都具有相同的字段,如标题,说明,发布日期,图像我可以添加封装另一个对象,这将是汽车,技术,就业领域,每一个封装的内部属性,他们像 汽车(型号,品牌,价格), 技术(州,价格,饰品,尺寸) (工作,支付)

这是这个想法,实际上对于每一个广告,你可以执行盟友扩大功能,为每个人建立一个数据库。 我的问题是:使用关系数据库对象有哪些潜在的问题? 什么是最佳选择?

回答

0

最显着的区别是Oracle的对象关系技术很少使用。

很少有程序员或数据库管理员在对象关系技术方面具有丰富的经验。数据库工具不能很好地支持对象,或根本不支持对象。 Oracle不支持这项技术 - 它有问题,并且不会经常更新。

当然,仅仅因为某个功能很少,并不意味着您应该忽略它。有些情况下Oracle的对象关系特性工作得很好。但是如果你打算用对象构建数据库的重要部分,你需要考虑技能,技术和支持的丧失。

3

大多数如果不是全部,在过去十年中最糟糕的数据库设计必须在建对象模型,而不是装到关系模型中的根表。

OOP是编程 thang;它的行为和数据结合在一起的概念在构建API等时很有效。但是当涉及到持久性时,它会很糟糕,导致可怕的大表,大量重复数据和极慢的查询。我不是说这是不可避免的,但它是打赌的方式。

那么为什么Oracle支持数据库中的类型?因为使用行为定义复杂数据类型有好处:XMLType就是这样,Oracle Spatial广泛使用对象。但是这些用法仅限于常规关系表的各个列。我们的目的不是也没有,我们使用对象表来存储数据库中的所有数据。

通过各种手段使用类型在PL/SQL编程。我已经做了大量的工作,对于正确的用例他们可以非常有效。只是不要将数据存储在它们中。