Java 更新一对多表的最佳实践是什么

Java 更新一对多表的最佳实践是什么,java,sql,oracle,Java,Sql,Oracle,我有两张桌子。 一个表是USER,另一个表是USER\u MULTIVALUED\u ATTRIBUTES。一个USER有许多USER\u多值属性大约15个属性。USER表有18行,USER\u多值属性有100行。 DDL就像 create table USER ( ENTRYUUID VARCHAR2(36) not null, USERNAME VARCHAR2(254)

我有两张桌子。 一个表是
USER
,另一个表是
USER\u MULTIVALUED\u ATTRIBUTES
。一个
USER
有许多
USER\u多值属性
大约15个属性。
USER
表有18行,
USER\u多值属性
有100行。 DDL就像

create table USER
(
    ENTRYUUID                  VARCHAR2(36)           not null,
    USERNAME                   VARCHAR2(254)          not null,
    EMAILHASH                  VARCHAR2(128)          not null,
    EXTERNALID                 VARCHAR2(256),
    DISPLAYNAME                VARCHAR2(512),
    GIVENNAME                  VARCHAR2(256),
    ...
}

create table USER_MULTIVALUED_ATTRIBUTES
(
    ATTRIBUTEID      NUMBER                 not null
    ENTRYUUID        VARCHAR2(36)           not null,
    ATTRIBUTENAME    VARCHAR2(64)           not null,
    ATTRIBUTETYPE    VARCHAR2(64),
    ATTRIBUTEVALUE   VARCHAR2(512)          not null,
    CREATETIME       TIMESTAMP(6) default SYSDATE,
    LASTMODIFIEDTIME TIMESTAMP(6) default SYSDATE,
    USERBUCKETID     NUMBER       default 0 not null
)
现在我想对大约200000个用户进行路径更新。首先,逐个更新
USER
表, 关于更新
USER\u MULTIVALUED\u ATTRIBUTES
表,一种方法是逐个更新USER,删除所有MULTIVALUED\u属性,并为每个用户插入新的MULTIVALUED\u属性。 另一种方法是逐个更新用户,选择所有多值_属性并与输入的多值_属性进行比较,然后更新更改的多值_属性。
哪条路更好?您还有其他问题吗?

对不起,我听不懂您的问题。我猜这些表是基于
ENTRYUUID
链接的,还是基于
ENTRYUUID和ORGANIZATIONID
连接的?什么是唯一键?@通过ENTRYUUID连接两个表。更新用户,并且他们是一个组织,并且具有相同的组织ID。因此,当您在
User
上更新
ORGANIZATIONID
时,您想在
User\u MULTIVALUED\u ATTRIBUTES
上更新吗?永远不会修改ORGANIZATIONID。我从LDAP获取输入,并将用户信息更新到Oracle中。信息存储在
User
User\u MULTIVALUED\u ATTRIBUTES
中,我更改了描述并删除了
组织ID
。有点混乱抱歉,我无法理解您的问题。我猜这些表是基于
ENTRYUUID
链接的,还是基于
ENTRYUUID和ORGANIZATIONID
连接的?什么是唯一键?@通过ENTRYUUID连接两个表。更新用户,并且他们是一个组织,并且具有相同的组织ID。因此,当您在
User
上更新
ORGANIZATIONID
时,您想在
User\u MULTIVALUED\u ATTRIBUTES
上更新吗?永远不会修改ORGANIZATIONID。我从LDAP获取输入,并将用户信息更新到Oracle中。信息存储在
User
User\u MULTIVALUED\u ATTRIBUTES
中,我更改了描述并删除了
组织ID
。有点混乱