使用集合作为表定义的一部分

时间:2013-03-27 16:35:38

标签: oracle database-design plsql user-defined-types

我对收藏品本身的整体知识一般都知道很多,但我没有得到一点。为什么在数据库中存储集合(作为嵌套表和变量)?

我发现通常在编程语言中使用数组很有用,但我不明白它们在表的一部分时是如何有用的。难道一切都不能实现为两个实体之间的简单关系吗?

为什么/我应该在哪里/哪里使用嵌套表或数组作为表的一部分?它们有什么好处?

2 个答案:

答案 0 :(得分:3)

Oracle开始支持数据库中的对象,这是长期丢弃品牌重塑的一部分。 Oracle8被定位为ORDBMS而不仅仅是RDBMS。然后Larry发现了互联网,他们把Java放在数据库中,然后将Oracle8i作为RDBMS再次重新品牌化。

然而,SQL类型仍然存在。他们是一件好事。正如你所说,数组是一个出色的编程设备,在PL / SQL中非常有用。在遗传和多态性方面,我们可以构建可爱的API。

但是,关键点:

  

“我不明白为什么要在数据库中以这种方式存储它们”

确实如此。在数据库表定义中使用SQL类型几乎没有充分的理由。从理论上讲,它们可用于定义域类型,但语法过于笨重,无法使其发挥作用。对于将列定义为嵌套表而言,这是双重的。这使得难以实施规范化和关系完整性。

我遇到过几个非常小众的案例,但它们不是核心数据库表。相反,它们是日志表等实用程序。

答案 1 :(得分:0)

虽然大多数表操作都可以使用连接执行,但有时varrays和嵌套表变得非常有用。 我们以前做过的一种情况是,从jdbc向pl / sql发送一个逗号分隔的字符串,然后使用函数将字符串转换为varray,然后将其用于IN子句中的进一步操作。此时varrays变得有用。

此链接提供了很好的解释...... http://www.indicthreads.com/9429/plsql-collections-associative-arrays-nested-tables-varray-collection-methods/

享受:)