www.sijohansson.com

Hem -> Programmering -> Johan -> Databasbeskrivning

Johan - databas

Personfiler, parfiler

Byggstenarna i Johan-databasen är personfiler och parfiler. I varje personfil skrivs uppgifter om en enda person. I varje parfil skrivs uppgifter om ett enda par.

Jag använder ibland orden personblad och parblad och gör för det mesta ingen åtskillnad mellan dessa ord och personfil resp. parfil.

I personfilen identifieras personen med ett för johandatabasen unikt åttasiffrigt nummer. Numret ingår också i filnamnet för personfilen, typ 01234567.xml. personfilen ingår personens namn, uppgifterna om födelse och död.

I parfilen identifieras paret som sådant med bokstäverna "par" och ett för johandatabasen unikt åttasiffrigt nummer. Numret ingår också i filnamnet för parfilen, typ par01234567.xml. I parfilen finns utrymme för att notera parets bildande, traditionellt vigsel, och dess upplösning.

Personfiler och parfiler knyts samman genom att

Exempel på person- och parfiler

Observera den korsvisa länkningen mellan personfil 00000059.xml och parfil par00000224.xml
liksom mellan parfil par00000224.xml och personfil 00002118.xml.

Jämför med webbutdraget för person 00000059

XML

Personfiler och parfiler är skrivna i klartext med xml-etiketter, vanligen kallade xml-taggar (svengelsk översättning från 'xml tags').

Johan skriver, och förväntas läsa, person- och parfiler med kodning UTF-8. Varken ISO-8859 i någon variant eller någon Windows-kodning är tillåten.

Att klartext och taggar möjligen tar mera lagringsutrymme på hårddisken än vad som kanske skulle krävts av andra databasprogram finner jag överkomligt. Med dagens hårddiskpriser är marginalkostnaden för lagring runt 80 öre per gigabyte. Medelstorleken för personfiler och parfiler är mindre än ca 2 kilobytes per person.

Med mina släktdata i klartext känner jag mig betydligt säkrare på att mina barnbarn en gång ska kunna läsa dem än vad jag skulle vara om de blir hänvisade till ett proprietärt databasprogram från en sedan länge försvunnen leverantör, ett program som måste köras under ett operativsystem som gick att köra på hårdvara som varit skrotad sedan länge.

Med separata textfiler för varje person och varje par i stället för att ha allt samlat i en enda databas som tycks ett stort svart hål är det väsentligt enklare att ha flera personer och par samtidigt på bildskärmen. Det är nu bara filen för en och samma person (eller ett och samma par) i en och samma databas, som inte kan öppnas för uppdatering från flera fönster samtidigt.

Regler:

Mappar (kataloger)

Databasen består av en katalog, vilken innehåller en katalogstruktur med ett antal filer och kataloger, vilka i sin tur och i flera steg kan innehålla ytterligare filer och kataloger. Databasens namn är liktydigt med den översta katalogens namn. Det kan väljas godtyckligt och kan ändras. I strukturen ryms:

Exempel - grundläggande struktur

Kataloger Beskrivning, innehåll  
Databasen   Toppkatalog; godtyckligt namn
  Namnet är databasens namn
  data Samlingskatalog för kataloger med person- och parfiler
  00000 Personfiler för personer 00000001 - 00000999
  00001 Personfiler för personer 00001000 - 00001999
  00002 Personfiler för personer 00002000 - 00002999
  etcetera Fler personfilskataloger efter behov
  par00000 Parfiler för par par00000001 - par00000999
  par00001 Parfiler för par par00001000 - par00001999
  etcetera Fler parfilskataloger efter behov
  locks temporära filer
  senaste Två filer. Högsta utdelade nummer för person resp. par
Ytterligare kataloger
  html Katalog där Johan sparar innehållsförteckningar
  text Katalog där Johan sparar ättlinglistor i textformat.
  xml Formateringsfiler för visning med webbläsare
  php Visningsfiler för användning i apache-server
  webbutdrag-ååååmmdd_hhmmss
disbytutdrag-ååååmmdd_hhmmss
särskiltutdrag-ååååmmdd_hhmmss
Till formen kompletta databaser. Innehåller delmängd av Databasen, genererad av exportera.py. Kan tas bort.
     
  kategorier-ååååmmdd_hhmmss Statistik - kan raderas

Exempel - inbäddade datafiler

I ett grundläge ligger exempelvis på katalogen Databasen/data/01234 xml-filerna 01234000.xml - 01234999.xml för personerna 01234000 - 01234999.

På motsvarande sätt för parfiler finns exempelvis på katalogen Databasen/data/par01234 xml-filerna par01234000.xml - par01234999.xml för paren par01234000 - par01234999.

Johan-programmen arbetar med filer med filnamnsändelsen '.xml' och störs inte om det i samma kataloger samtidigt ligger filer med andra filnamnsändelser.

Tvärtom - Johan-programmen kan lägga märke till förekomsten av filer med vissa filnamnsändelser och starta externa program för att hantera sådana filer.

Mallfilerna Databasen/data/mallar/00000000.odt och Databasen/data/mallar/par00000000.odt ska inte raderas utan bör i stället kompletteras och anpassas efter användarens tycke och smak.



Besökare sedan 2011-02-13:

Sidan senast ändrad 2011-02-22