Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapis numeru wersji w jednej kolumnie, Jak zapisywać pełny numer wersji aby był poprawnie sortowalny?
Gander
post
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?
Go to the top of the page
+Quote Post
mmmmmmm
post
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.
Go to the top of the page
+Quote Post
Gander
post
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ę.
Go to the top of the page
+Quote Post
timon27
post
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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 10:42