OK, así que prácticamente cada aplicación basada en una base de datos tiene que lidiar con registros "no activos". O bien, eliminaciones suaves o marcando algo como "ignorado". Tengo curiosidad sobre si hay pensamientos de alternativas radicales en una columna 'activa' (o una columna de estado).bandera 'activa' o no?
Por ejemplo, si tuviera una lista de personas
CREATE TABLE people (
id INTEGER PRIMARY KEY,
name VARCHAR(100),
active BOOLEAN,
...
);
Eso significa que para obtener una lista de las personas activas, es necesario utilizar
SELECT * FROM people WHERE active=True;
¿Alguien sugiere que los registros no activos haría ser trasladado a una mesa separada y donde sea apropiado se hace una UNIÓN para unir los dos?
curiosidad sorprendente ...
EDIT: Quiero dejar en claro, ya voy en este desde una perspectiva purista. Puedo ver cómo el archivo de datos puede ser necesario para grandes cantidades de datos, pero no es de donde vengo. Si lo hace un SELECT * de la gente tendría sentido para mí que esas entradas son en cierto modo "activo"
Gracias
Podría ser más específico sobre cómo "particionar" la tabla. Me refiero a dar el código para cualquier RDBM que desee. –
Según lo solicitado, agregó un ejemplo de una tabla particionada. Eche un vistazo al manual de conceptos de Oracle para obtener información detallada sobre la partición de tablas y índices. Uso Oracle 10.2 y hago referencia a toda la documentación desde aquí -> http://www.oracle.com/pls/db102/homepage –
En lugar de una marca "activa", recomendaría utilizar un nombre de campo diferente, como "eliminado" . La razón es que cuando la siguiente persona trabaja en ella, puede confundirse con lo que significa "activo". Aparte de eso, +1 gran publicación. – NotMe