У меня есть таблица сказать:Ревизии Обращение в Oracle
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 таблиц, очень похожих на эту.
+1: Идея индекса на основе функций отличная! – 2010-11-23 16:37:09