🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #82913

Re: Co wybrac - Identity czy sekwencje

#82913
From: zpksoft
Date: Sat, 17 Feb 2018 13:34
73 lines
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-mail
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>

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