sql >> Databasteknik >  >> RDS >> Mysql

Databasdesign:Registrering och verifiering

Jag ser detta från en annan synvinkel.

I din situation är förmodligen ett bord tillräckligt bra. Men det finns andra överväganden.

1) Volym. I en liten tabell kommer filtrering på en flagga inte att påverka prestandan nämnvärt. I en stor tabell (miljontals rader) skulle du behöva sätta flaggan i ett index. Att placera en flagga med låg kardinalitet i ett index i en stor tabell kan minska prestandan.

2) Defekter. Att ha en flagga i tabellen kräver att nästan varje fråga använder flaggan. För ett tillräckligt stort, eller tillräckligt komplext system, kommer någon att missa den flaggan. Att fastställa risken beror på kostnaden för att av misstag välja en oaktiverad användare.

Ett sätt att minska riskerna är att använda synpunkter. Om du implementerar en lösning med två tabeller, använd en vy (All_Users) med UNION ALL. Om du implementerar en entabellslösning, skapa en vy endast för aktiverade användare och använd den tabellen istället. Endast underhållsfunktionaliteten behöver modifiera kärntabellerna.



  1. Hur man distribuerar Percona Server för MySQL för hög tillgänglighet

  2. Bästa praxis för att migrera data från MySQL till BigQuery

  3. Konsolidera flera Oracle-utlösare. Någon prestationspåverkan?

  4. Hur kan jag komma åt MySQL-kommandoraden med XAMPP för Windows?