Ieri io hanno ricevuto una domanda spesso fatta di un amico mio vicino e qualcuno che molto rispetto. Nelle sue parole:

La mia nuova azienda ha un sistema attuale che sto riscrivendo. Il sistema
ha una base di dati che segue la filosofia mai realmente di cancellazione della a
annotazione - regoli appena una marcatura che della bandierina ha cancellato. Che cosa pensate a questo?

Penso generalmente che sia un'idea difettosa. Penso che generi appena il lavoro
per voi in altre zone. Ma potrei essere ingenuo.

Sto usando il rubino sulle rotaie, che ha questa guida di riferimento di ASCIUTTO (non faccia
Ripeti). Le rotaie mette le cose che sono tradizionalmente in
base di dati nello strato di tracciato oggetto-relazionale, quali le regole sopra
integrit� riferentesi. Indovino che l'integrit� riferentesi � normalmente in 2
posti: codice di applicazione (logica di affari) e meta dati della base di dati.
In ogni modo, i vincoli della base di dati sono utilizzati raramente in rotaie.

Il sistema � un luogo della comunit�, con i bordi di discussione ed i lotti di
l'altro soddisfare comune che � contribuito dai membri. I membri possono
vada e pu� essere cancellato o ha reso invalido.

Sono tentato per cancellare i membri se sono cancellati. Sono tentato
per per cancellare soddisfare se � cancellato. Sono tentato per andare
soddisfare dagli ex membri a meno che il soddisfare in se sia
inadeguato, bench� indovini il soddisfare che sta mancando un collegato
l'annotazione del membro sarebbe specie di un orfano. (Sto pensando appena alto fuori
qui).

Avete di raccomandazioni generali?

Odierei aggiungere ad ogni singola dichiarazione di sql quando (cancellato �
posizione di segnale minimo o deleted=0) . E penso che ci potrebbero essere altre edizioni, come
gli scontri chiave unici con le annotazioni che sono contrassegnate hanno cancellato.

Su un progetto ho generato uno schema che ha avuto specie di un debole
rapporto in esso. Ci� era il sistema di pianificazione di obiettivo. La tabella di obiettivo
ha avuto una colonna del username. Questa colonna del username ha potuto essere usata per trovare
utente nella tabella di utente. Ma se l'utente sia cancellato, gli obiettivi ancora
visualizzato appena benissimo. Indovino se un utente unito pi� successivamente, riutilizzando la a
username precedentemente usato erediterebbero alcuni obiettivi attuali.
Realmente questa caratteristica era motivazione per lo schema - ho cominciato con
un insieme degli obiettivi da un da un grandi foglio elettronico ed io li ha voluti esistere e
Ho voluto potere aggiungerli gli utenti e propriet� dell'introito degli obiettivi
gi� nel sistema.

Per concludere, se cancello le annotazioni, suggerite conservare cancellato
annotazione in altra tabella? � quella una pratica comune?


Qui � il mio introito su esso:

Mai non cancellare un'annotazione � una pratica soprattutto seguita nell'industria finanziaria ed alcune in compagnie farmaceutiche che vying per l'approvazione della FDA. Ogni volta che state occupando di finanziario o altri dati sensibili non � un'idea difettosa archivarla in questo modo. � ragionevolmente facile da dirigere tali dati. Potete spostare periodicamente le annotazioni contrassegnate cancellato verso una o pi� basi di dati secondarie, che � interrogato soltanto quando volete tali dati, che sono rare. Cos� � giusto da avere tempi di reazione pi� lenti in cui interrogate le annotazioni cancellate.
Questo senso la vostra magra primaria dei resti della base di dati e digiuna.

Oggi un terzo bisogno sta emergendo nei luoghi sociali della comunit� e della rete (per mai la cancellazione dell'annotazione). Spesso le reti del terrorista (come nei gruppi del Yahoo) o i trafficanti di droga (come in Orkut) usano tali luoghi per comunicare con i loro membri geograficamente distribuiti. L'archiviatura dei loro dati di comunicazione pu� pi� successivamente aiutare le autorit� incaricata di fare rispettare la legge nell'inseguimento loro gi�. Il flipside � che pu� essere abusato dalle stesse autorit� per sollevare nelle vite private dei cittadini normali. Ma quella � una storia per un altro giorno :)

> sono tentato per cancellare i membri se sono cancellati. Sono tentato
per per cancellare soddisfare se � cancellato. Sono tentato per andare
soddisfare dagli ex membri a meno che il soddisfare in se sia
inadeguato, bench� indovini il soddisfare che sta mancando un collegato
l'annotazione del membro sarebbe specie di un orfano. (Sto pensando appena alto fuori
qui).

Posso vedere il valore che supplementare potete ottenere da queste annotazioni, come l'individuazione del tasso di logorio (la gente che lascia il luogo o che � cancellata) col passare del tempo, di loro soddisfare ecc. In generale riducete molta dell'emicrania sopra le annotazioni orfane o i problemi riferentesi di integrit� (bench� non pensi che RoR dipenda da quello) si scolano la strada. Poich� � i fissaggi sono poco costosi attualmente.

Cos� per ricapitolare penso:
il A. l� � parecchi benefici nella conservazione delle annotazioni cancellate e semplicemente nel segno loro come cancellato
il B. l� non � molto costo o prestazione lass� connessa con una tal decisione anche se il vostro luogo si trasforma in nel MySpace seguente come potete spostarli sempre periodicamente sopra verso le basi di dati secondarie.

La maggior parte delle domande di sql cercheranno semplicemente le annotazioni che non ha l'insieme cancellato del campo. Per le domande che coinvolgono le annotazioni cancellate, dovrete in primo luogo osservare nella base di dati primaria ed allora osservare nella base di dati cancellata secondaria delle annotazioni, se decidiate di usare una base di dati secondaria.

> come gli scontri chiave unici con le annotazioni che sono contrassegnate ha cancellato.
Quella non sarebbe un'edizione. Se stiate prevedendo l'onere gravoso allora potete volere usare il numero intero lungo per l'indice. Il numero intero senza firma normale gli dar� soltanto 4GB.

> per concludere, se cancello le annotazioni, suggerite conservare l'annotazione cancellata in altra tabella? � quella una pratica comune?

Se stiate contrassegnandoli semplicemente come allora cancellati potete spostarli semplicemente periodicamente verso una base di dati differente. Non suggerirei di spostarlo verso una tabella differente cos� che � probabile generare pi� confusione e non lo aiuterei quanto molto WRT. prestazione. � ragionevolmente pratica comune salvo alle annotazioni cancellate. Ho lavorato con tali sistemi dentro oltre. Penso che troviate che (marcatura li registra come cancellati) risolvono pi� problemi che generate a lungo termine.

Lascilo sapere, i miei lettori del blog, che cosa � il vostro introito su questa edizione?