三维数据库表

dch*_*cke 9 sql database arrays dimensions

我们都在那里 - 考虑以下示例 - 首先,客户说"每个用户只有一个个人资料图片",所以我们在用户表中添加一个字段 - 半年后,需求发生变化,用户实际上需要有n张个人资料图片.

现在,这似乎只有在你添加一个新表如user_pictures来处理新的基数1:n而不是1:1时才有可能.通常这会变得非常复杂.每当我遇到这个问题时,我想知道为什么我们不使用我们可以想到的所有三个维度.二维表的局限性有点不完整 - 如果,指的是我们的问题与个人资料图片再次,用户表中的图片字段具有深度,并且该深度使该字段成为同时完美地表示基数1:1和1:n的数组.

表字段将简单地成为数组并自动支​​持两个基数 - 这不是什么?至少我会用它.那里有类似的东西吗?

gor*_*rdy 9

Oracle支持数组嵌套表.似乎符合您的要求.这些天虽然人们更喜欢将所有内容建模为表格和关系,以保持简单和一致,因此现代RDBMS一般不支持这些东西,我也不相信它曾经成为标准SQL.


Adr*_*eno 6

标准的多对多方法,许多用户到许多个人资料图片,很容易被三种表格方法所涵盖:

表:用户
表:
图表:User_Pictures

但是,如果转到NoSQL方法,则可以存储用户文档(通常为JSON格式),该文档在单个表中存储该用户的配置文件图片数组.

@gordy为Oracle链接+1.我不确定是否有任何RDBS假设数组.