Bezug auf this question, habe ich beschlossen, die Tabellen jedes Jahr zu verdoppeln, Erstellen von Tabellen mit den Daten des Jahres, so etwas wie, zum Beispiel:PostgreSQL: beste Weg, um neue zu erstellen/duplizieren vorhandenen Tabellen jedes Jahr
orders_2008
orders_2009
orders_2010
etc...
Nun, ich weiß, dass wahrscheinlich das Geschwindigkeitsproblem mit nur 2 Tabellen für jedes Element, wie orders_history und order_actual gelöst werden konnte, aber ich dachte, dass sobald der Handler-Code geschrieben wurde, wird es keinen Unterschied geben .. nur viele Tabellen .
Diese Tabellen werden sogar ein Kind mit Fremdschlüssel haben; zum Beispiel wird die orders_2008 das Kind items_2008 haben:
CREATE TABLE orders_2008 (
id serial NOT NULL,
code character(5),
customer text
);
ALTER TABLE ONLY orders_2008
ADD CONSTRAINT orders_2008_pkey PRIMARY KEY (id);
CREATE TABLE items_2008 (
id serial NOT NULL,
order_id integer,
item_name text,
price money
);
ALTER TABLE ONLY items_2008
ADD CONSTRAINT items_2008_pkey PRIMARY KEY (id);
ALTER TABLE ONLY items_2008
ADD CONSTRAINT "$1" FOREIGN KEY (order_id) REFERENCES orders_2008(id) ON DELETE CASCADE;
Also mein Problem ist: Was denken Sie, ist der beste Weg, diese Tabellen alle 1. Januar und, natürlich, halten die Tabellen Abhängigkeiten zu replizieren?
Ein PHP/Python-Skript, das nach Abfrage die Struktur für das neue Jahr neu erstellt (von einem Cron-Job aufgerufen)? Können die Funktionen von PostgreSQL auf diese Weise genutzt werden? Wenn ja, wie (ein kleines Beispiel wird nett sein)
Eigentlich gehe ich für den ersten Weg (eine .sql-Datei mit der Struktur, und ein PHP/Python-Skript von Cronjob geladen, die die Struktur neu aufbauen), aber ich frage mich, ob das der beste Weg ist.
bearbeiten: Ich habe gesehen, dass die Pgsql-Funktion CREATE TABLE LIKE, aber die Foreign-Schlüssel müssen in einem zweiten Mal hinzugefügt werden .. oder es wird die neuen Tabellen auf die alten Tabellen verweisen.
Ich habe ein Problem beim Verschieben von Daten in eine andere Tabelle: die Zuverlässigkeit. Ich habe eine Tabelle (mehr als eine), die die Zahlungsfähigkeit des Unternehmens speichern, automatisch ausgefüllt durch die Rechnungen und Zahlungsströme. Wenn ich alle ein Jahr alten Rechnung in der Verlaufstabelle verschiebe, dann sollte ich alle Leistungszeilen mit der Rechnungs-ID, die in der Verlaufstabelle gewährt wurde, aktualisieren. Ist nicht unmöglich, nur zart – Strae