Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2017-02-19, 11:14
  #13
Medlem
Citat:
Ursprungligen postat av sagonar
Jag vill också rekommendera en Databas + en logg fil.
+ Du kan ha en DATABAS som ligger som 1 fil disk.(sqllite3)
+ Det funkar även om strömmen går Just när du göra SAVE
- Det är lite nya saker att förstå..

Jag vill också slå ett slag för en logg fil..
Vad händer om en kund kommer in och frågar efter sina däck:
"Jo jag lade in 2 extra däck, var är de ?"

Då kan det vara mycket bra att ha en "logg" som säger, jo du hade 2 extra däck: men den 11 Januari 2017 15:35 så hämtades de ut.. (kanske en notis vem som hämtar?)
Det blir nog mycket lättare att övertyga kunden om att du inte har eller BORDE ha några extra däck, om du kan säga vad som hände, och när.

Re filer vs en Databas
Jag tycker att de andra har beskrivet det bra, men kan skriva det igen: en databas kan ligga som en "fil" på disk.
Flera personer kan "Hämta ut" däck samtidigt.
Bra hantering om tex strömmen går etc.

Även om du väljer att använda dig av 1 fil, så kommer du behöva trixa runt lite..
Vad händer om strömmen går mitt medan du gör SAVE ?
(Systemet kanske hinner spara HALVA filen till disk?)
Du måste lära dig lite nya saker där med:
Antaligen SAVE //kolla att det blivit OK, RENAME file
Vid uppstart finns det några HALV sparade filer ?

Även om jag tycker det finns för många som alltid vill ha en DB till allt,
så vill jag också i detta fallet starkt rekommendera en DB.

SQLite kör med journaler. Så den skriver in ändringen två gånger. Hinner den stänga sin journal innan strömmen försvinner så kommer den att slutföra ändringen vid nästa uppstart. Dvs ändringen blev accepterad.

Hinner den inte stänga sin journal så kommer journal-informationen kastas bort och senaste ändringen kommer inte att finnas med.

Och journalen använder transaktioner. Så man kan starta en transaktion och sedan utföra en hel massa databasförändringar innan man avslutar transaktionen med commit eller rollback. Rollback betyder att man ångrar sig - alla ändringar kastas bort. Kanske man knappat åt en kund och just på slutet säger de att de ångrar sig. Och väljer man i stället att stänga transaktionen med Commit så kommer alla dessa databasändringar att atomiskt accepteras. Så ingen risk att databasen hamnar i trasigt läge där halva informationen finns och halva saknas.

Innebär alltså att SQLite är rejält robust. Samtidigt som den har nätverkssupport så det går att köra mer än en klient mot samma fil utan att användare två blir utelåst.

Vidare kan SQLite hantera backup medan någon använder databasen. Backup får med sig allt som man gjort Commit på.

Med Excel är det dessutom lätt hänt att någon korkad användare tar en kopia på filen. Sitter sedan med laptop hemma och gör en massa arbete och kopierar tillbaka filen dagen därpå - utan att inse att någon annan redan har varit inne och lagt in ändringar på filserverns kopia.
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback