Who's online
|
We have 120 guests and no members online
|
Visitors
|
29291427
Today Yesterday This Week This Month Last Month All days
583 11171 55787 121491 334453 29291427
|
|
|
Databasemotor i AgetoAge4
User Rating: / 0
- Details
-
Category: Development
-
Published on Wednesday, 09 July 2008 14:12
-
Written by Ove
-
Hits: 2389
Vi vil nå se på diverse alternativer for å implementere en databasemotor. En databasemotor kan man tenke på som et selvstendig program som håndterer forespørseler om data fra et annet program. I vårt tilfelle vil ATA da sende en forespørsel til databasemotor programmet om å finne en bestemt person, familie, etc.
ATA vil få innebygget databasemotor med tid og stunder, hvor lang tid dette vil ta er litt usikkert pga. at det finnes mange løsninger, skal vi bruke MS SQL 2005, MySQL, Access, eller andre? Vi trenger litt tid til å utforske dette litt. Når vi har fått til dette vil dette gjøre at det ikke blir noe ventetid for å ATA til å lese filer. Man velger enten en lokal database på sin egen maskin eller en external database (på et nettsted, eller annen datamaskin på et privat nettverk) og ATA behøver ikke ha alle data i hukommelsen, ATA vil hente data fra databasen ved behov.
Det er siikkert mange av dere som har prøvd Microsoft Access til å lage noen databaser, jeg har selv prøvd det, og husker det var morro å lage alle tabellene som måtte til, for ikke å snakke om oppretting av relasjoner og få tabellene til å samarbeide. Dette kan bli en realitet i ATA, man vil kunne lage sine egne tabeller...... tenk litt på det.... man blir mindre avhengig av hvordan jeg har programmert dette, man kan lage nye tabeller og fylle disse med data fra standardtabellene under kriterier som man selv setter. Bare et lite helt enkelt eksempel: man ønsker seg en tabell over personer man vil jobbe mer med (finne forfedre osv.) Man går da til SQL vinduet og lager en ny tabell, navnet kan være hva som helst, hvis dette navnet finnes allerede for en eksisterende tabell vil man ikke få lov å lage den, men må da velge et annet navn. Man kan skrive en SQL setning som lager denne tabellen med de feltene og datatypene man ønsker. Er man ekspert på SQL kan brukeren skrive den selv...hvis man er usikker på hvordan det gjøres vil man kunne få ATA til å gjøre dette. Etter at tabellen er laget kan man så bruke SQL setninger for å fylle den med de personer man ønsker.
Jeg vil nå utforske mer i MySQL som ble utviklet i Sverige og har vært uavhengig helt til i år da det ble kjøpt opp av Sun Microsystems som har mer enn 34 000 arbeidere.
Om data strukturen
User Rating: / 0
- Details
-
Category: Development
-
Published on Friday, 11 July 2008 21:59
-
Written by Ove
-
Hits: 2703
AgetoAge4 bruker ikke databasemotor, men kolleksjoner av objecter, disse blir laget og lest inn fra en fil i ASCII format og dette er effektivt så fremt datamengden ikke er altfor stor. En datamengde på 50 000 personer har blitt testet, og det går med vanlige datamaskiner for hjemmebruk, med standard mengde RAM. Jeg vurderer nå å bruke databasemotor i neste versjon av ATA fordi det er interessant å sette dette systemet opp og vil utvikle en ny versjon for dette. Jeg var inne på tanken å implentere dette i gjeldende versjon men tror jeg vil la AgetoAge4 være som den er og heller lage ny versjon.
Hvilke tabeller er nødvendige for et slektsprogram?
Hvis man bare ønsker å lage et program som kan vise hvordan personene henger sammen er det ikke mange tabeller man trenger. Her er de tabeller som blir brukt i AgetoAge4:
TABELL PERSONER
int ID
string firstname
string lastname
int sex
int fatherID
int motherID
string birthdate
string birthplace
string baptismdate
string baptismplace
string deathdate
string deathplace
string occupation
string address
string phone
string mailaddress
string http
string photo
string registerdate
string source
TABELL MARRIAGES
int PID
END TABELL
TABELL COMMENTS
string comment
END TABELL
END TABELL
TABELL FAMILIES
int ID
int male
int female
string marriagedate
string marriageplace
string empty
string empty
string photo
int x
int y
TABELL COMMENTS
string comment
END TABELL
TABELL CHILDREN
int PID
END TABELL
END TABELL
TABELL LOCATIONS
string text
double latitude
double longitude
string comment
bool isactive
END TABELL
TABELL SOURCES
string name
datetime date
string description
string filename
END TABELL
TABELL BIRTDAYREMINDER
int ID
END TABELL
Som man ser er det ikke så mye som skal til for å kunne vise hvordan personene er relatert og den siste tabellen er helt unødvendig som man sikkert skjønner. Men det er mange tabeller man kan trenge etterhvert som man skrider frem.....og ved å bruke databasemotor kan man faktisk lage disse mens programmet kjører. Jeg planlegger nå to nye versioner av AgetoAge4, en som vil være et klient program for databasen vår her på agetoage4.com og en annen versjon som vil bruke en lokal database.
Mer om databaser
User Rating: / 0
- Details
-
Category: Development
-
Published on Saturday, 19 July 2008 12:28
-
Written by Ove
-
Hits: 2808
Jeg har nå sett litt på MS SQL Server 2005 og MySQL og jeg er nesten helt sikker på at vi vil velge MySQL for AgetoAge.
For brukere som vil kjøre lokal database på sin egen maskin må man ha en server installert og jeg har nå prøvd å installere to alternativer MySQL og MS SQL Server 2005.
MySQL serveren er forholdsvis grei å innstallere (45MB) og man kan også installere et Administrator program som gir en full kontroll over alle databaser man ønsker og der kan man opprette brukere osv. Og de versjonene vi trenger er gratis. Det samme gjelder forsåvidt MS SQL Server 2005 men denne serveren er tung og stor å innstallere, for Vista brukere skal man også installere en update pack på langt over 200MB.
Så jeg vil satse på MySQL og denne typen er veldig utbredt og populær. Brukere av AgetoAge vil måtte sette seg litt inn i hvordan man oppretter databaser og brukere med rettigheter, men jeg tror dette vil være svært interessant for mange også og dem som slett ikke vil sette seg inn i dette kan fortsette å bruke AgetoAge4 som før.
MySQL Community Server (gratis) kan lastes ned her: http://dev.mysql.com/downloads/mysql/5.0.html Disse verktøyene finnes i en installasjon som kan lastes ned her: http://dev.mysql.com/downloads/gui-tools/5.0.html
- MySQL Administrator 1.2
- MySQL Query Browser 1.2
- MySQL Migration Toolkit 1.1
Query Browser kan brukes til å jobbe med dataene uavhengig av AgetoAge, det er også en god dokumentasjon på syntaksen og funksjoner slik at man kan bygge opp spørringer mot databasen selv om man er nybegynner. Man kan også definere nye funskjoner, f.eks kan man lage sin egen funksjon som returnerer alle ancestorer for en person om man vil og funksjonen kan man lagre som et script som man laster inn ved behov.
Det viktigste med databaser er vel kanskje det at man kan definere nye felter i tabellene hvis behovet skulle oppstå uten at man trenger å revidere lagringen av dataene. (Dette håndteres av databasen).
Et annet verktøy som jeg nettopp har installert er MySQL Workbench http://dev.mysql.com/downloads/workbench/5.0.html Dette ser ut til å være et ideelt verktøy for å utføre vedlikehold på databasene.
Grensesnitt i AgetoAge4
User Rating: / 0
- Details
-
Category: Development
-
Published on Sunday, 20 July 2008 06:23
-
Written by Ove
-
Hits: 2660
Her er et eksempel på hvordan vi kan organisere modulene, jeg tenker meg et grensesnitt som lager person og famiie objecter fra data hentet fra MySQL og sender disse til AgetoAge ved forespørsel. Dette grensesnittet vil gjøre at ingenting bortsett fra hvordan dataene kommer inn blir forandret i AgetoAge.
Det finnes helt sikkert en masse "freeware tools" som kan brukes til å lage rapporter fra data i MySQL baser og har nå fått overført alle data fra familiefila vår til en MySQL database og det er utrolig interessant å søke i dataene i MySQL Query, det vil ikke by på store problemer å integrere MySQL i AgetoAge4.
Fant forresten en nyttig introduksjons artikkel om MySQL her
|
|
|