Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ograniczenia typów liczbowych
Forum PHP.pl > Forum > Bazy danych > MySQL
Jarod
Tak się zastanawiam. Każdy typ liczbowy (czy to int, bigint), niezależnie jaka to baza ma pewną maksymalną wartość. I np mamy tabelę Zleceni gdzie jej jednym z atrybutów jest numer_zlecenia typu int. numer_zlecenia jest AUTO_INCREMENT - unikalny. Przecież wkońcu kiedyś zakres liczbowy się wyczerpie.. I co wtedy? Jak sobie poradzić z takim problemem?
nospor
Dać taki typ pola, aby się nie wyczerpał.
Bo np. czy na pewno uda ci się wprowadzić parę miliardów produktów?
SongoQ
Jak sie wyczerpie to zatrzymuje sie na koncowej wartosci i wtedy baza rzuca Ci bledami ze w polu wystepuje juz taki ID
Kinool
idac tokiem rozumowania ze kiedys cos sie wyczeprpie mozna dojsc do sytuacji ze powiedzmy masz nieograniczony typ liczbowy mozesz walic ile chesz produkot i wiesz ze zakres sie nigdy nie wyczeprie, ok wrzucasz milion produktow, malo wiec walisz 80 miliardow produktow?? malo?? w koncu dochodzisz do sytuacji ze powiezchnia dysku jest za mala zeby przechowywac informacje o samej ilosci produktow!!!! i co wtedy??

nie ma nieograniczonych dyskow tongue.gif

generalnie chodzi mi o "przerost formy nad trescia" co z tego ze w typie int mozesz uzywac liczb z zakresu 0 - 4294967295 (bez znaku) nie slyszalem o sklepie ktory by mial taki asortyment tongue.gif

inny przyklad? Allegro system dzila juz od kilku lat w polsce liczba przeprowadzonych aukcji to ponad 48 000 000 do wyczerpania zakresu int moga jeszcze spokojnie pracowac kilkaset lat smile.gif a jak sie im wyczerpie to co za problem dac wiekszy typ tongue.gif
Jarod
Chodziło mi o to, żę pewna firma projektuje bazę dla innej. Nie wiemy ile będzie np zleceń czegoś (możę być bardzo dużo). i np po 3 latach baza zacznie się sypać.. bo braknie zakres danego typu wyczerpie się.. Wiem, że nie ma żeczy nieograniczonych. Ale załóżmy, że firma nie może pozwolić sobie na przestój, a bez bazy nie może działać.. A poprawiać baże jak już jest tyle rekordów.. Czujecie to? Stąd moje pytanie

Pozdrawiam
dr_bonzo
Cytat
Nie wiemy ile będzie np zleceń czegoś
No to sie dowiedzcie ile maja miesiecznie, rocznie, jaki planuja przyrost ilosci zlecen, itd. Przelicz ile powinno wystarczyc przez X lat -- do nastepnej modernizacji systemu i dodaj ilestam procent wiecej.
Kinool
bigint daje ci zakres bez znaku 18446744073709551615 jezeli co sekunde bedziesz wstawial rekord to zakres wyczerpiesz po okolo 584 942 417 355 latach!!!!

jeszcze sie zastanawiasz nad ograniczeniami?
Jarod
Cytat(Kinool @ 2005-04-25 11:21:10)
bigint daje ci zakres bez znaku 18446744073709551615 jezeli co sekunde bedziesz wstawial rekord to zakres wyczerpiesz po okolo 584 942 417 355 latach!!!!

jeszcze sie zastanawiasz nad ograniczeniami?

Dzięki za wytłumaczenie. Gdzie mogę znaleźć info o zakresie liczbowym poszczególnych typów?

Spotkałem się z opinią, żeby stosować tylko te typy, któe wchodzą w standard SQL. Czyli w mysqlu nie stosować bigint. Wtedy łatwiej będzie przenieść aplikację na inną bazę danych? Czy warto się tak ograniczać?

Pozdrawiam
SongoQ
Cytat
Spotkałem się z opinią, żeby stosować tylko te typy, któe wchodzą w standard SQL. Czyli w mysqlu nie stosować bigint. Wtedy łatwiej będzie przenieść aplikację na inną bazę danych? Czy warto się tak ograniczać?


I tak i nie. Jesli sie ograniczysz to stracisz duzo typow danych bez ktorych nie bedziesz mogl roszyc. Np Postgres typ INET, mozna bardzo wiele wymieniac. Nieraz jest tak ze te same typy a maja inne wartosci. Musisz sie zastanowic czy to Ci sie oplaca, takie standaryzowanie roznych baz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.