我有一张桌子说:
CREATE TABLE "DataNode" (
"ID" NUMBER(7,0),
"TYPE" NUMBER(7,0),
"NAME" VARCHAR2(100),
"STATUS" NUMBER(7,0),
"REVISION" NUMBER(4,0),
"MODIFIEDAT" DATE
);
CREATE TABLE "DataNode_Revisions" (
"ID" NUMBER(7,0),
"NODEID" NUMBER(7,0),
"TYPE" NUMBER(7,0),
"NAME" VARCHAR2(100),
"STATUS" NUMBER(7,0),
"REVISION" NUMBER(4,0),
"MODIFIEDAT" DATE
) COMPRESS;
所以我有这两张桌子。我从“DataNode”中读取所有内容,当发生更改时,我将当前条目写入“DataNode_Revisions”,然后修改我现有的“DataNode”记录。说得通?
这是最好的方法吗?我已经可以告诉我,当 Schema 发生变化时我会遇到问题。我没有看到更好的选择,但如果有,请告诉我!我认为将所有这些都放在一张表中会导致巨大的性能损失,不是吗?我的意思是我的记录数量会翻两番,而且已经有不少了。我认为 Drupal 存储节点修订是这样的,我很好奇它们是如何不遭受性能问题的。
“DataNode”不断被很多用户阅读。但是,很少发生写入。“DataNode_Revisions”只是偶尔读取。我只是担心维护这么多表。“DataNode”是与这个非常相似的约 25 个表之一。