sql >> Database teknologi >  >> RDS >> Mysql

Databasedesign:Registrering og verifikation

Jeg ser det fra et andet synspunkt.

I din situation er ét bord sandsynligvis godt nok. Men der er andre overvejelser.

1) Volumen. I en lille tabel vil filtrering på et flag ikke påvirke ydeevnen væsentligt. I en stor tabel (millioner af rækker) skal du sætte flaget i et indeks. At sætte et lavt kardinalitetsflag i et indeks for en stor tabel kan reducere ydeevnen.

2) Defekter. At have et flag i tabellen kræver, at næsten hver forespørgsel bruger flaget. For et stort nok, eller komplekst nok system, kommer nogen til at savne det flag. Bestemmelsen af ​​risikoen afhænger af omkostningerne ved ved et uheld at vælge en uaktiveret bruger.

En måde at mindske risici på er at bruge synspunkter. Hvis du implementerer en løsning med to tabeller, skal du bruge en visning (All_Users) ved hjælp af UNION ALL. Hvis du implementerer en one table-løsning, skal du oprette en visning kun for aktiverede brugere og bruge den tabel i stedet for. Kun vedligeholdelsesfunktionaliteten skal ændre kernetabellerne.



  1. Lagring af filer i SQL Server

  2. Hent matrix af kolonneværdier i codeigniter

  3. Hent sidst indsatte ID-formular gemt procedure i MySQL

  4. Sådan bruger du Virtual Index i Oracle-databasen