У меня есть таблица, в которой говорится:
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». Имеет смысл?
Это лучший способ сделать это? Я уже могу сказать, что столкнусь с проблемами при изменении схемы. Я не вижу лучшей альтернативы, но если она есть, дайте мне знать! Я предполагаю, что хранение всего этого в одной таблице приведет к огромным потерям производительности, разве нет? То есть я бы увеличил количество записей более чем в четыре раза, а их уже довольно много. Я думаю, что Drupal хранит такие версии узлов, и мне любопытно, как они не страдают от проблем с производительностью из-за этого.
"DataNode" постоянно читается многими пользователями. Однако когда-либо происходит очень мало записей. "DataNode_Revisions" читается только от случая к случаю. Я просто беспокоюсь о том, чтобы поддерживать так много таблиц. «DataNode» - одна из ~ 25 таблиц, очень похожих на эту.