Glupi, glupi Oracle!!! i GUID

Ne mogu rečima da opišem koliko me je ova GLUPAVA baza podataka koštala vremena i živaca svojom samovoljom i nepoštovanjem konvencija koje na ostalim bazama s kojima imam dodira rade kao sat.

Izgubio sam ceo dan tražeći zašto mi objekat, koji za kluč ima GUID nakon čuvanja u Oracle bazi dobija sasvim drugi izgled. Odgovor na to pitanje i dalje ne znam, ali sad znam kako da zaobiđem problem.

Ako treba da koristiš GUID na više baza i to treba da radi konzistentno, nemoj da koristiš GUID kao takav jer različite baze mogu drugačije da ga mapiraju/čuvaju šta god. Bolje čuvaj string, a GUID nakon što jednom generišeš, lepo pozoveš Guid.ToString() i zaboraviš da je ikad bio GUID.

Ovo verovatno nije dobro za brzinu upita i indeksiranje, ali će ti uštedeti sate i sate uzaludnog debagiranja.

Drugo rešenje, ako koristiš Nhibernate, jeste da napraviš GuidUserType kojim ćeš se pobrinuti da se GUID konzistentno mapira na sve baze.

Коментари

Популарни постови