繁体   English   中英

来自字符串的计算id作为数据库键

[英]Computed id from string as database key

我有一个XML接口,其中包含我需要解析然后插入数据库的条目。 条目具有所有必需的信息,但我想规范化数据库,因此尝试从基本信息生成对象。

这是基本条目的示例:

<entry url="http://example.com" author="Ex1" title="Title" category="Category1"/>

我基本上需要以下基础对象(伪代码):

class entry:
    entryID; (PK)
    url;
    title;
    authorID; (FK)
    categoryID; (FK)

class author:
    authorID; (PK)
    name;

class category:
    categoryID; (PK)
    name;

这当然提出了一个问题,我需要插入类别和作者entites之前我插入实际的条目不违反参照完整性约束,但我不想写作者和类别只是为了立即恢复他们的新密钥并将它们写回条目,因为这会显着降低性能。

是否有针对此类问题的推荐方法,或者我应该根据类别和作者的名称计算哈希值?

您可以使用WITH查询首先在表中插入数据,RETURNING其键,然后插入另一个表:

WITH author AS (
    INSERT INTO d_author (name)
    values ($1) RETURNING id)
insert to maintable (id)
    select id from author

(示例键入内容,有关WITH查询的完整详细信息,请参阅https://www.postgresql.org/docs/current/static/queries-with.html )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM