sql >> Database >  >> RDS >> Mysql

Database-ontwerp:registreren en verifiëren

Ik zie dit vanuit een ander gezichtspunt.

In jouw situatie is één tafel waarschijnlijk goed genoeg. Maar er zijn andere overwegingen.

1) Volume. In een kleine tabel zal het filteren op een vlag de prestaties niet significant beïnvloeden. In een grote tabel (miljoenen rijen) zou je de vlag in een index moeten plaatsen. Het plaatsen van een vlag met een lage kardinaliteit in een index van een grote tabel kan de prestaties verminderen.

2) Defecten. Het hebben van een vlag in de tabel vereist dat bijna elke query de vlag gebruikt. Voor een systeem dat groot genoeg of complex genoeg is, zal iemand die vlag missen. Het bepalen van het risico hangt af van de kosten van het per ongeluk selecteren van een niet-geactiveerde gebruiker.

Een manier om de risico's te beperken is het gebruik van views. Als u een oplossing met twee tabellen implementeert, gebruikt u een view (All_Users) met UNION ALL. Als u een oplossing met één tabel implementeert, maakt u een weergave voor alleen geactiveerde gebruikers en gebruikt u in plaats daarvan die tabel. Alleen de onderhoudsfunctionaliteit hoeft de kerntabellen te wijzigen.



  1. Hoe kunnen query's in MySQL worden geschreven die JSON-gegevens in een kolom kunnen ontleden?

  2. Hoe selecteer ik efficiënt de vorige niet-null-waarde?

  3. converteer datum naar geheel getal in postgresql

  4. Mis ik wijzigingen als ik een Oracle-trigger vervang terwijl mijn toepassing actief is?