Fórum Banco de Dados desativar dado #514406
22/03/2015
0
Estou Desenvolvendo um sistema de Controle escolar e estou precisando de ajuda no banco de dados estou precisando desativar um dado do banco para que futuramente caso precise reativar tal dado se alguém puder me ajudar agradeço.
Thiego Jesus
Curtir tópico
+ 0Posts
22/03/2015
Alan Mario
Gostei + 0
26/03/2015
Thiego Jesus
tipo ele permanece no banco mas nao parece no sistema. mas ele tem que aparecer de volta quando reativar
Gostei + 0
26/03/2015
Marcos P
Para as tabelas que precisam desse recurso, crie uma coluna chamada "Status" ( boolean ).
Se status = true, o resgistro está ativo e aparece na aplicação.
Se status = false, o registro está está inativo.
Do lado da aplicação você deve tratar a ativação / inativação naquela tabela e todas as pesquisas para desprezar os registros inativos.
Ou seja, todo o tratamento ocorre na aplicação e não no BD !
Resolve ?
Gostei + 0
26/03/2015
Thiago Santana
com o valor default true e no sistema você filtra apenas os registros onde esse campo estejam com o valor true!
Gostei + 0
26/03/2015
Alan Mario
Gostei + 0
26/03/2015
Marilia Silva
Gostei + 0
27/03/2015
Thiago Santana
CREATE TABLE CLIENTES
( ID_CLIENTE INT, NOME VARCHAR(255), ATIVO INT
);
O campo ativo você poderá utilizar 0 = TRUE, 1 = FALSE
Gostei + 0
27/03/2015
Marcos P
É algo similar ao que o Thiago colocou no post acima...
Gostei + 0
27/03/2015
Randrade
CREATE TABLE CLIENTES
( ID_CLIENTE INT, NOME VARCHAR(255), ATIVO INT
);
O campo ativo você poderá utilizar 0 = TRUE, 1 = FALSE
Apenas completando a resposta.
Após isso, basta colocar esta condição so select.
SELECT * FROM CLIENTES WHERE ATIVO = TRUE
OU
SELECT * FROM CLIENTES WHERE ATIVO = 0
Neste caso, a consulta retornará somente os clientes ativos.
Gostei + 0
27/03/2015
Marcos P
Isso tende a ter um impacto menor na aplicação pois as queries não precisam ser alteradas, assim como a performance seria otimizada.
O lado negativo é que o banco de dados tende a aumentar consideravelmente de tamanho...
Existem várias abordagens para isso, veja por exemplo : Soft Deletion
Gostei + 0
27/03/2015
Thiago Santana
Isso tende a ter um impacto menor na aplicação pois as queries não precisam ser alteradas, assim como a performance seria otimizada.
O lado negativo é que o banco de dados tende a aumentar consideravelmente de tamanho...
Existem várias abordagens para isso, veja por exemplo : Soft Deletion
isso ai Marcos!
É bom analisar os impactos, mas o caminho é exatamente este!
Randrade completou legal meu post rsrs
Gostei + 0
27/03/2015
Marilia Silva
Gostei + 0
27/03/2015
Jothaz
Fica a gosto do freguês e de quais tipos o banco de dados dispõe, dai define-se as regras de como os registros serão tratados.
Por exemplo:
INT -> 0 - Ativo e 1 - Inativo
CHAR -> 'A' - Ativo e 'I' - Inativo
BIT -> Ativo (True) 1 e Inativo (false) 0
Particularmente acho mais performático INT ou BIT.
É sempre uma boa prática efetuar a exclusão lógica ao invés da exclusão física pois assim mantem-se a coesão nos dados históricos.
Sem falar que alguns sistemas, folha de pagamentos, deve-se manter o registros dos funcionários demitidos por exemplo.
Com será feito, através de flag´s ou de tabelas como o Marcos P sugeriu é uma questão a ser analisada de acordo com cada cenário.
Gostei + 0
27/03/2015
Marilia Silva
Gostei + 0
29/03/2015
Thiago Santana
Fica a gosto do freguês e de quais tipos o banco de dados dispõe, dai define-se as regras de como os registros serão tratados.
Por exemplo:
INT -> 0 - Ativo e 1 - Inativo
CHAR -> ''A'' - Ativo e ''I'' - Inativo
BIT -> Ativo (True) 1 e Inativo (false) 0
Particularmente acho mais performático INT ou BIT.
É sempre uma boa prática efetuar a exclusão lógica ao invés da exclusão física pois assim mantem-se a coesão nos dados históricos.
Sem falar que alguns sistemas, folha de pagamentos, deve-se manter o registros dos funcionários demitidos por exemplo.
Com será feito, através de flag´s ou de tabelas como o Marcos P sugeriu é uma questão a ser analisada de acordo com cada cenário.
Exatamente isso Jothaz!
Fica ao seu critério Marilia...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)