Loading…
Tilbage

Profilbillede

Replikering af Stednavne og navngivning

Valdas Zabulionis

Hej,

Jeg har prøvet at replikere de nye DAGI entiteter, der er blevet tingængelige til replikering, men er løbet ind i et problem med Stednavne.

Vi vil gerne have dataen i en SQL Server database, med ved replikering af Stednavne får jeg en duplicate key fejl. Så vidt jeg kan se, så drejer det sig om disse to stedid'er:

 19e4392f-bf6a-5d41-e053-d380220a2006

og

 19e4392e-fcf4-5d41-e053-d380220a2006

Der findes to rækker for hvert af disse stedid'er:

stedid, navn, navnestatus, brugsprioritet

"19e4392e-fcf4-5d41-e053-d380220a2006" "Styrt-om" "officielt" "primær";
"19e4392e-fcf4-5d41-e053-d380220a2006" "Styrt-Om" "uofficielt" "sekundær"

og 

"19e4392f-bf6a-5d41-e053-d380220a2006" "Grevinge mølle" "officielt" "primær"
"19e4392f-bf6a-5d41-e053-d380220a2006" "Grevinge Mølle" "uofficielt" "sekundær"

 

Entitet Stednavne har en primærenøgle, som består af stedid(uuid) og navn(string), hvilket fungerer fint med DAWA Replikerings klienten og PostgresDb, som åbenbart skelner mellem små og store bogstaver i strings --- hvilket SQL Server ikke gør?

Mit spørgsmål er så, om det er en fejl, at der for et givet stedid, i stednavne kan findes flere navne? Og hvis det ikke er en fejl, så vil jeg spørge om der kan være flere primære brugsprioriteter for et stednavn, da jeg har overvejet at bruge det som en del af primærnøglen for skelne forskelle mellem rækkerne.

 

Mvh Valdas Zabulionis

Hej Valdas,

Problemet skyldes, at SQL Server som default laver case insensitive sammenligning på strenge. Den bedste løsning på dit problem er at oprette "navn"-kollonnen med en case sensitiv collation. 

Den bedste løsning på dit problem er IMO at lave kolonnen case-sensitiv. Det gør du ved at specifiere en case-sensitiv collation for kolonnen når du opretter tabellen. Jeg er ikke SQL Server ekspert, men her er et eksempel:

https://database.guide/how-to-set-the-collation-of-a-column-in-sql-server-t-sql/

Det vil muligvis også virke at tage navnestatus og brugsprioritet med som nøgle, men vi kan ikke garantere at der ikke i fremtiden kommer et stednavn hvor det kun er navnets casing der er forskellig. 

Hej Anders,

Mange tak for info, jeg valgte at gøre, som du foreslog og har lavet kolonnen om til case-sensitiv.

Mvh. Valdas