Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

...

Verksamhetslager

TBD

Persistenslager

TBDDetta lager är baserat på JPA 2.0 samt Spring Data och Hibernate. För lokala tester används en HSQL in-memory databas och för externa tester används MySQL.
Persistenslagret kan konfigureras för att använda andra databaser som MS SQL Server, IBM D2 eller Oracle, men har endast verifierats med MySQL.

Mappning till tabell

Databasstrukturen är enkel med en enda huvudtabell där nästan hela posten är en primärnyckel och den information som uppdateras är endast två datumfält.

Tabellen ser ut enligt:

engagement_index_table

KolumnnamnNull

Primär-

nyckel

Del av

logisk-

nyckel

Typ och Längd
idNejX Varchar(64)

registered_resident_id

Nej XVarchar(32)

service_domain

Nej XVarchar(255)

categorization

Nej XVarchar(255)

logical_address

Nej XVarchar(64)

business_object_instance_id

Nej XVarchar(128)

source_system

Nej XVarchar(64)

data_controller

Nej XVarchar(64)

owner

Nej XVarchar(64)

clinical_process_interest_id

Nej XVarchar(128)

creation_time

Nej  Timestamp

update_time

Ja  Timestamp

most_recent_content

Ja  Timestamp

 

Förutom primärnyckeln som är id så finns ett sökindex med namnet engagement_search_index.

Primärnyckel

I enlighet med specifikationen är den unika verksamhetsnyckeln ganska komplex och är just nu (RC8) baserad på nio fält, och för att underlätta databashanteringen har en teknisk primärnyckel valts där den denna härleds utifrån verksamhetsnyckeln. Den valda algoritmen för att skapa denna unika nyckel är SHA-2 eller mer exakt SHA-256, och resultatet är en 32 bytes array som sedan konverteras till en 64 teckens sträng på hexadecimalt format. I teorin kan duplikat uppstå, men i praktiken har ingen funnit några duplikat vid användning av denna algoritm, se även http://en.wikipedia.org/wiki/SHA-2.

Observera att användningen av en teknisk primärnyckel inte förändrar det faktum att man inte under några omständigheter kan ändra på någon del av verksamhetsnyckeln, dvs. utifrån detta perspektiv är det exakt samma hantering som om verksamhetsnyckeln hade används som primärnyckel. Därför har varje fält som ingår i verksamhetsnyckeln markerats med en JPA indikator om att fältet ifråga inte ska uppdateras.

Sökningar

För sökningar används springs JPA repository interface, där sökningar definieras antingen med namnkonvention eller med SQL (JPQL) satser.

Portering databaser

Nuvarande implementation har endast verifierats med MySQL 5 databas och det finns ett antal punkter som man bör reflektera över när det gäller portering till andra databaser:

  • Vid sökning av flera poster med hjälp av primärnyckeln används en "IN" sats och vissa databaser kan kan ha begränsningar med avseende på batch-storleken för denna typ av anrop