sql >> Databasteknik >  >> RDS >> Mysql

Ta aldrig bort poster? Bra idé? Vanliga?

I en av våra databaser skilde vi mellan transactional och dictionary rekord.

Med ett par ord, transactional poster är saker som du inte kan rulla tillbaka i verkligheten, som ett samtal från en kund. Du kan ändra uppringarens namn, status etc., men du kan inte avvisa själva samtalet.

Dictionary poster är saker som du kan ändra, som att tilldela en city till en kund.

Transactional poster och saker som leder till dem togs aldrig bort, medan dictionary de skulle kunna raderas okej.

Med "saker som leder till dem" menar jag att så snart posten dyker upp i affärsreglerna som kan leda till en transactional post blir denna post också transactional .

Som en city kan raderas från databasen. Men när en regel dök upp som sa "skicka ett SMS till alla kunder i Moskva ", blev städerna transactional registrerar också, annars skulle vi inte kunna svara på frågan "varför gjorde detta SMS bli skickad".

En tumregel för att särskilja var följande:är det bara mitt företags verksamhet?

Om en av mina anställda fattade ett beslut baserat på data från databasen (som han gjorde en rapport utifrån vilken något ledningsbeslut togs, och sedan datarapporten baserades på försvann), ansågs det OK att radera dessa data.

Men om beslutet påverkade några omedelbara handlingar med kunder (som att ringa, krångla med kundens saldo etc.), behölls allt som ledde till dessa beslut för alltid.

Det kan variera från en affärsmodell till en annan:ibland kan det krävas att även interna data registreras, ibland är det OK att radera data som påverkar omvärlden.

Men för vår affärsmodell fungerade regeln från ovan bra.



  1. sql server underfråga med en kommaseparerad resultatuppsättning

  2. Hur räknar man ord i MySQL / regular expression replacer?

  3. Hur man öppnar en tabell i designvy i Microsoft Access

  4. MySQL vs. JSON - Varför?