微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Oracle数据库中存储不同类型的数据的最佳体验

如何解决在Oracle数据库中存储不同类型的数据的最佳体验

晚上好

我目前正在开发Java应用程序。现在,我要允许用户为对象保存无限数量的关联附件。

这些附件可以是以下类型:字符串,xml文件,二进制文件

我使用Oracle数据库作为数据库。实际上,建议为每种类型使用不同的数据类型: 字符串-VARCHAR XML文件-CLOB 二进制文件-BLOB

这里最好的方法是什么?一个普通表,其中除其他外包含3个字段(varchar,clob,blob),并且取决于类型,是两个字段,然后是NULL还是三个单独的表?

期待您的回答

解决方法

您不必担心“浪费”的空间,只需为每个VARCHAR2CLOBBLOB的每个分类创建一个包含三个不同列的表。 Oracle不会使用任何(有意义的)空间来执行此操作,如果您有3个表,那只会使事情复杂化。您已经为这些类型的文件内容选择了适当的数据类型。

为了方便起见,我还会有一个附加列FILE_TYPE VARCHAR2(10),其中可以包含文件类型。并且该列将通过简单的内联约束来限制以验证FILE_TYPE

create table user_files (
    file_name varchar2(4000) not null,file_type varchar2(8) not null check (file_type in ('VARCHAR2','CLOB','BLOB')),text_data varchar2(4000),xml_data  clob,binary_data blob
   );

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。