OK, so dass praktisch jede datenbankbasierte Anwendung mit "nicht aktiven" Datensätzen umgehen muss. Entweder Soft-Deletionen oder Markieren von etwas als "ignoriert werden". Ich bin gespannt, ob es radikale Alternativen zu einer `active'-Spalte (oder einer Statusspalte) gibt.`aktive 'Flagge oder nicht?
Zum Beispiel, wenn ich eine Liste von Personen hatte
CREATE TABLE people (
id INTEGER PRIMARY KEY,
name VARCHAR(100),
active BOOLEAN,
...
);
Das bedeutet, eine Liste der aktiven Menschen zu erhalten, müssen Sie
SELECT * FROM people WHERE active=True;
Hat jemand verwenden, lassen vermuten, dass nicht aktive Datensätze würde zu einem separaten Tisch gebracht werden und wo eine UNION ist, um die beiden zu verbinden?
Neugierde auffällig ...
EDIT: ich sollte klar machen, ich bin von einem puristischen Perspektive auf das kommende. Ich kann sehen, wie Datenarchivierung für große Datenmengen notwendig sein kann, aber das ist nicht, wo ich herkomme. Wenn Sie eine SELECT * FROM Menschen tun würde es Sinn für mich, dass die Einträge in einem gewissen Sinne „aktiv“ sind
Dank
Können Sie genauer darüber sein, wie Sie die Tabelle "partitionieren". Ich meine den Code für jede RDBM, die du magst. –
Wie gewünscht, wurde ein Beispiel für eine partitionierte Tabelle hinzugefügt. Sehen Sie sich das Concepts-Handbuch von Oracle für detaillierte Informationen zur Tabellen- und Indexpartitionierung an. Ich verwende Oracle 10.2 und referenziere die gesamte Dokumentation von hier -> http://www.oracle.com/pls/db102/homepage –
Anstelle einer "aktiven" Flagge würde ich empfehlen, einen anderen Feldnamen wie "gelöscht" zu verwenden . Der Grund ist, dass wenn die nächste Person daran arbeitet, sie verwirrt werden könnten, was "aktiv" bedeutet. Ansonsten, +1 toller Beitrag. – NotMe