![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 28.10.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Zastanawiałem się nad tym od dawna, ale temat wypłynął teraz, przy okazji rzeźbienia w SS. Głowę moją zajmuje zagadka jak zapisać numer wersji w jednej kolumnie bazy danych, ale tak, aby można było dane w niej sortować poprawnie i zgodnie z funkcją php: version_compare? Przeczytawszy Semantic Versioning zdecydowałem się na ograniczenie wartości do:
Kod major.minor.patch.release.index Zapis może być dowolny, byleby baza danych sortowała je poprawnie. Mam do dyspozycji gettery i settery, więc wartość w bazie może być mało czytelna, skrypty przerobią ją na czytelną. Pierwszym moim pomysłem było użycie pola typu decimal oraz zapis wersji np 1.2.3 w postaci 1.002003. Ponieważ wydanie może przyjąć wartość: dev < alpha < beta < rc < stable, a wartości te przy zwykłym sortowaniu (sort) nie będą w tej kolejności, można by je zamienić na wartości cyfrowe: 0 < 1 < 2 < 3 < 4. Wszystko pięknie, tylko czasami widuję że patch przyjmuje wartości o długości ponad trój cyfrowe. Pytanie, czy starczy jeśli zarezerwuję dla wartości: 7.13.666-rc.2 szablon decimal: Kod ###.########## 007.0130066632 bądź char: Kod ###.###.#####.#.# 007.013.00666.3.2 Jakieś podpowiedzi? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Zapisz w 5 kolumnach i po problemie.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 28.10.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Tak, wiem, ale mam do dyspozycji tylko jedną kolumnę.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 578 Pomógł: 69 Dołączył: 15.04.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Co to znaczy że nie możesz użyć wielu kolumn?
Szef ci kazał oszczędzać kolumny bo drogie? (IMG:style_emoticons/default/haha.gif) Innym rozwiązaniem, mającym dodatkowe zalety jest utworzenie oddzielnej tabeli nazw wersji - tak jest np. w google play - każda wersja programu musi mieć nazwę 'pisaną' np "3.45.Xd45.najnowsza/2013" oraz nazwę będącą kolejną liczbą naturalną. Czyli w nowej tabeli 'nazwy_wersji' trzymasz kolumny 'id' - kolejne liczby naturalne, oraz 'nazwa wersji' czyli ww nazwy. W starej tabeli użyj tylko id odnoszącego się do tej tabeli. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 10:42 |