Article View: pl.comp.lang.delphi.bazy-danych
Article #82913Re: Co wybrac - Identity czy sekwencje
From: zpksoft
Date: Sat, 17 Feb 2018 13:34
Date: Sat, 17 Feb 2018 13:34
73 lines
5791 bytes
5791 bytes
W dniu sobota, 17 lutego 2018 10:33:22 UTC+1 użytkownik wloochacz napisał: > W dniu 2018-02-17 o 09:00, zpksoft pisze: > > Ani mi w głowie czepianie się. Tylko podaję alternatywę. Docelowo... jedynie słuszną. > No to pojechałeś, jedynie słuszną... > Ciekawym, co jeszcze jest wg Ciebie jedynie słuszne? To był żart. > > A w sumie nie jestem ciekawy. > > > Takie jest moje przekonanie. A tu jego uzasadnienie. > > Nie mam najmniejszego zamiaru walczyć z innymi przekonaniami. > Ale podajesz "jedynie słuszne" rozwiązania? > > > Popróbuj identyfikatorów łańcuchowych to już się nie cofniesz. > No nie wiem, ten id jest dłuższy (znaczy więcej miejsca zajmuje) niż > numeryczny i kropka. > > I pytanie - jaki ma typ zmienna na to ID w Twoim programie? char() > > Poza tym, trudniej się go wpisuje z palca - ale to akurat żaden > argument... tylko jakiś. W systemie który prowadzę można na tabeli wskazać rekord i z menu kontekstowego wybrać opcję "Kopiuj łącze" Następnie po wklejeniu tego łącza np. do pola tekstowego działa to tak, że samo najechanie myszą na to łącze pojawia się hint z informacją co ono zawiera. Ctrl+klik na tym łączu otwiera odpowiedni moduł, inicjuje dane i wskazuje cel. > > > Zauważyłem już dawno, że bardzo trudno jest programistów na to rozwiązanie namówić. Może dlatego, że podręczniki uczą tylko o liczbowych? > A może dlatego, że to jedyne słuszne rozwiązanie? :) > Zobacz gdzie idzie świat. Podałem dwa przykłady: ID na Youtube, ID tego wątku, możesz sobie obejrzeć np. moją partię szachów: https://lichess.org/3FAcy8OcZxyu gdzie łatwo zauważyć że ID tej partii to "3FAcy8OcZxyu" itd. > > W każdym razie po zastosowaniu identyfikatorów łańcuchowych znika wiele problemów, m. in. z synchronizacją. Na przykład można pracować na oderwanej bazie a potem dane po prostu wrzucić do bazy głównej... Nie spotkamy się z takimi samymi identyfikatorami więc powinno pójść łatwo. > Jak się ą synchronizację robi na kolanie to może i tak :D > Poza tym, podałem inne rozwiązanie na ten problem, z wykorzystaniem > "jedynie" słusznego typu numerycznego. Wybacz, ale moim zdaniem Twoje rozwiązanie jest słabe. Nie zsynchronizujesz tym sposobem dwóch baz które się nie widziały jakiś czas. > > > Kolejny przykład: można posłużyć się linkiem w postaci takiego identyfikatora żeby jednoznacznie dotrzeć do właściwego rekordu, nawet jeśli nie wiemy z jakiej tabeli pochodzi. A jak posłużysz się liczbą to nic to nie da... > Czytaj wyżej, bo to nieprawda. > A poza tym - link bezpośredni do rekordu w bazie danych? > Hmm... jakoś zestawienie tego pomysłu ze słowem "słuszne" budzi we mnie > nieokreślony, a wyraźny sprzeciw. > > > Przykładów można by mnożyć. Zachęcam. > Ja również zachęcam, ale do myślenia i kwestionowania "jedynie > słusznych" rozwiązań. > Ponieważ w ten sposób może, ale nie musi, urodzić się coś ciekawego. > > No i na koniec, inne pytanie; jak generujesz te identyfikatory? Początkowo, właściwie dla prób wykorzystywałem GUID. Ten brak sekwencyjności nie bardzo mi przeszkadzał bo user pyta zwykle o różną kolejność danych. Chciałem zbudować uniwersalny ID łańcuchowy w którym zakodowany byłby czas i losowość. Udało mi się opracować identyfikator 12 znakowy np. wygenerowany w tym momencie: "1OeS9r2JykUj". Mogę z niego odczytać czas powstania z dokładnością do dwóch milisekund. Czas zawarty jest w członie "1OeS9r". Stosuję te identyfikatory mniej więcej od czerwca 2005 roku i jeszcze nigdy w żadnej bazie nie miałem błędu powstania dwóch takich samych identyfikatorów. Mam spora doświadczenie w ich stosowaniu więc co jakiś czas próbuję namówić innych do ich stosowania. Ale ciężko. Bojaźń że coś źle pójdzie? Nie wnikam. Jak komuś coś zaświta to OK, plus dla mnie :) > > -- > wloochacz Paweł
Technical Details
Message-ID:
<ca7d63b4-f772-4935-b7f8-2f6cf13405f0@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!o66no764518ita.0!news-out.google.com!t6ni315itg.0!nntp.google.com!w142no763711ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<b103c4b1-8620-403a-a902-5e4ecd5fe355@googlegroups.com> <b32fab82-19c1-452a-a5c8-45943fa76db7@googlegroups.com> <5a8561ba$0$664$65785112@news.neostrada.pl> <24ef9b49-567a-44b5-acbd-44352e2701d0@googlegroups.com> <d84fb96f-7111-4b1a-b794-e856be8cca9e@googlegroups.com> <ecf4861c-5c5c-4ea8-85c6-2a9277b41a25@googlegroups.com> <97820f04-20f3-4421-a734-bb41bec12300@googlegroups.com> <5a87f6e0$0$559$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
X-Received: by 10.107.111.17 with SMTP id k17mr9017758ioc.28.1518874456605; Sat, 17 Feb 2018 05:34:16 -0800 (PST) X-Received: by 10.157.32.3 with SMTP id n3mr352442ota.12.1518874456370; Sat, 17 Feb 2018 05:34:16 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!o66no764518ita.0!news-out.google.com!t6ni315itg.0!nntp.google.com!w142no763711ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.delphi.bazy-danych Date: Sat, 17 Feb 2018 05:34:16 -0800 (PST) In-Reply-To: <5a87f6e0$0$559$65785112@news.neostrada.pl> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=217.99.181.111; posting-account=8ND_mgoAAAD5J9y9fnaTB1Kcu7xKWk7Q NNTP-Posting-Host: 217.99.181.111 References: <b103c4b1-8620-403a-a902-5e4ecd5fe355@googlegroups.com> <b32fab82-19c1-452a-a5c8-45943fa76db7@googlegroups.com> <5a8561ba$0$664$65785112@news.neostrada.pl> <24ef9b49-567a-44b5-acbd-44352e2701d0@googlegroups.com> <d84fb96f-7111-4b1a-b794-e856be8cca9e@googlegroups.com> <ecf4861c-5c5c-4ea8-85c6-2a9277b41a25@googlegroups.com> <97820f04-20f3-4421-a734-bb41bec12300@googlegroups.com> <5a87f6e0$0$559$65785112@news.neostrada.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <ca7d63b4-f772-4935-b7f8-2f6cf13405f0@googlegroups.com> Subject: Re: Co wybrac - Identity czy sekwencje From: zpksoft <zpksoft@op.pl> Injection-Date: Sat, 17 Feb 2018 13:34:16 +0000 Lines: 114 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit