Java Posted October 20, 2008 Report Share Posted October 20, 2008 Varbūt kāds zin, vai uz MySQL ir iespējams ģenerēt unikālu ID - nevis kaut kādu autoincrement, kas var būt vienādi citām tabulām, bet tādu, kas būs unikāls pa visu datubāzi, ja ne divām, trim datubāzēm kopā? MS SQL Server šāda fīča ir un viņš ģenerē ko šim līdzīgu 9d273393-92c9-4807-be9c-515a0d152415 , bet kā ir ar MySQL? Link to comment Share on other sites More sharing options...
Delfins Posted October 20, 2008 Report Share Posted October 20, 2008 padod iekšā kaut vai to pašu Windows GUID ģeneratora ID. Bet vispār nesaprotu šito, kāpēc neapmierina standarta ID Link to comment Share on other sites More sharing options...
bubu Posted October 20, 2008 Report Share Posted October 20, 2008 Java: A davai RTFM negribi? Atver manuāli, uzspiec Functions un reku viss priekšā - http://dev.mysql.com/doc/refman/5.0/en/mis...l#function_uuid Link to comment Share on other sites More sharing options...
Java Posted October 20, 2008 Author Report Share Posted October 20, 2008 Bet vispār nesaprotu šito, kāpēc neapmierina standarta ID Nu standarta ID nav tik unikāls - viņš ir unikāls tikai vienas tabulas ietvaros (pie vienas datubāzes piederošas). Link to comment Share on other sites More sharing options...
andrisp Posted October 20, 2008 Report Share Posted October 20, 2008 Kāpēc vajag, lai būtu unikāls arī ārpus tabulas ietvariem ? Link to comment Share on other sites More sharing options...
Java Posted October 20, 2008 Author Report Share Posted October 20, 2008 Piemēram, tad var nosaukt visās tabulās primāro lauku par vienkārši ID un taisīt kādas vien relācijas vēlas... Ne? Link to comment Share on other sites More sharing options...
andrisp Posted October 20, 2008 Report Share Posted October 20, 2008 Un kāpēc gan to pašu nevarētu darīt ar parastiem autoincrement ID ? Link to comment Share on other sites More sharing options...
Java Posted October 20, 2008 Author Report Share Posted October 20, 2008 Var, atcerējos, ka unique id ir citas priekšrocības - kas saistīts ar ierakstu numerāciju - redzi, reāli tev tie numuru id nav īsti unikāli, jo, ja vēlies pārnumurēt datubāzi, nu respektīvi, blablabla - jaunais ieraksts var ieņemt vecā vietu, bet unique id būs unikāls un ļoti ļoti maza varbūtība, ka kādam citam ierakstam varētu būt tāds pats ID :) Link to comment Share on other sites More sharing options...
andrisp Posted October 20, 2008 Report Share Posted October 20, 2008 Un kāpēc gan lai kāds gribētu "pārnumurēt" datubāzi ? "Tā izskatās smukāk" nav arguments. :) Link to comment Share on other sites More sharing options...
Java Posted October 20, 2008 Author Report Share Posted October 20, 2008 Ā, vēl viena lieta - useris var pārlapot visus ID vienkārši lietojot numurus pēc kārtas, bet GUIDus viņš tik vienkārši neuzminēs! ;) Bet man šķiet, ka nav garantēts, ka tas GUID būs unikāls, vienkārši ļoti liela varbūtība, ka tas būs tomēr unikāls pavisam - vismaz vienas datubāzes ietvaros! Link to comment Share on other sites More sharing options...
Java Posted October 20, 2008 Author Report Share Posted October 20, 2008 Piemēram, es minu id=123 - ja tur kaut kur parādās id=102 un id=134, piemēram, tad pastāv iespēja, ka būs 103 un 133, piemēram! ;) Bet priekš kam jūzerim būtu jārāda tas, kas viņam nav paredzēts rādīt? :) Tak nekodēsi visus numeriskos ID uz atrādīšanu? Link to comment Share on other sites More sharing options...
andrisp Posted October 20, 2008 Report Share Posted October 20, 2008 (edited) Ā, vēl viena lieta - useris var pārlapot visus ID vienkārši lietojot numurus pēc kārtas, bet GUIDus viņš tik vienkārši neuzminēs! ;) Tas gan - bet reti kad kaut kas tāds ir vajadzīgs. Katrā ziņā es labāk izveidotu pats kaut kādu formātu (piem., kā youtubei), kas nav tik garšs, nevis izmantotu 16 simbolīgo GUID. Bet priekš kam jūzerim būtu jārāda tas, kas viņam nav paredzēts rādīt? Nu ja tik svarīgi ir neļaut lietotājam apskatīt, tad jau vajag ieviest pieejas tiesību sistēmu nevis tikai uzticēties Security through obscurity (http://en.wikipedia.org/wiki/Security_through_obscurity) Edited October 20, 2008 by andrisp Link to comment Share on other sites More sharing options...
Gints Plivna Posted October 20, 2008 Report Share Posted October 20, 2008 Mana vienīgā pieredze ar GUIDiem bija tieši kādā MS SQL datubāzē, kur man nācās pētīt datus un kā tie ievadīti un kā vajag ievadīt. Pēc neilga laiciņa es biju gatavs nosist (vismaz virtuāli) to džeku, kas tos GUIDus tur visur bija sabāzis, jo tā vietā, lai normāli atlasītu klasifikatorus ar 5 vērtībām un atcerētos ka to idi bija 1, 2, 3, 4, 5 (nu labi kaut vai 1034, 77, 657, 843 utml) man nācās katru stringu kopēt ar ctrl+c un ctrl+v. Tas bija nenormāli besīgi, NENORMĀLI. Bet nu vispārīgā gadījumā, protams, vienam patīk māte, otram meita, trešajam kleita un ir jau nenoliedzmi kādas pozitīvās īpašības arī GUIDiem :) Gints Plivna http://datubazes.wordpress.com Link to comment Share on other sites More sharing options...
Java Posted October 20, 2008 Author Report Share Posted October 20, 2008 Man šķiet, ka youtube ir pēc kaut kāda pašizdomāta algoritma sakodēti ID ne? Varbūt arī viņi tādus glabā datubāzē, gan jau ka tā, bet nu jāatceras arī, ka tam algoritmam jānodrošina visu ID unikalitāte - nebūs viegli tādu izdomāt? Link to comment Share on other sites More sharing options...
Java Posted October 20, 2008 Author Report Share Posted October 20, 2008 Mana vienīgā pieredze ar GUIDiem bija tieši kādā MS SQL datubāzē, kur man nācās pētīt datus un kā tie ievadīti un kā vajag ievadīt. Pēc neilga laiciņa es biju gatavs nosist (vismaz virtuāli) to džeku, kas tos GUIDus tur visur bija sabāzis, jo tā vietā, lai normāli atlasītu klasifikatorus ar 5 vērtībām un atcerētos ka to idi bija 1, 2, 3, 4, 5 (nu labi kaut vai 1034, 77, 657, 843 utml) man nācās katru stringu kopēt ar ctrl+c un ctrl+v. Tas bija nenormāli besīgi, NENORMĀLI.Bet nu vispārīgā gadījumā, protams, vienam patīk māte, otram meita, trešajam kleita un ir jau nenoliedzmi kādas pozitīvās īpašības arī GUIDiem :) Toties veicot šādus atlasīšanas, grupēšanas un migrācijas darbus, tev tie GUIDi lieti noder, jo tu nevari sajaukti ID nekādi - GUID būs unikāls pa visu DB, savukārt tāds pats ID var būt 50 tabulās :)) Link to comment Share on other sites More sharing options...
Recommended Posts