Mam problem z wygenerowaniem unikalnego identyfikatora wersji z wielu innych wersji.
Na przykład wezmę przypadek pliku, któregonumer wersji musi odzwierciedlać wersję oprogramowania, która została użyta do jego wygenerowania, wersję danych wejściowych i wersję bazy danych użytej do pobrania metadanych ograniczających zawartość pliku.
Powiedzmy:
Software | Input | Database | Result file
-----------------------------------------------
3.1.0 | 2.3.9 | 3.0.9 | 01
3.1.1 | 2.3.9 | 3.0.9 | 02
3.1.1 | 2.3.9 | 3.2.0 | 03
gdzie każda liczba reprezentuje wersję, i jak widać, wynikowa wersja pliku musi być sformatowana jak XX, a nie X.Y.Z, nie XXX, a nie X. Jest to ograniczenie.
Wiem, że mogę po prostu zarządzać takim stołem jakjeden powyżej w bazie danych lub pliku i podczas dodawania lub zmiany wersji, zwiększ wynikową wersję pliku, ale program generujący te wersje będzie istniał w kilku przypadkach, w których ta tabela może być inna. Tak więc wersja 01 niekoniecznie musi być przypisana do tej samej kombinacji oprogramowania, danych wejściowych i wersji bazy danych w obu przypadkach, ale dla czytelności lepiej byłoby w różnych przypadkach mieć wersję pliku skojarzoną z daną kombinacją w tych instancjach.
Na przykład:
Instancja 1
Software | Input | Database | Result file
-----------------------------------------------
3.1.0 | 2.3.9 | 3.0.9 | 01
3.1.1 | 2.3.9 | 3.0.9 | 02
3.1.1 | 2.3.9 | 3.2.0 | 03
Instancja 2
Software | Input | Database | Result file
-----------------------------------------------
3.1.0 | 2.3.9 | 3.0.9 | 01
3.1.1 | 2.3.9 | 3.2.0 | 02
3.1.1 | 2.5.0 | 3.2.0 | 03
kombinacja (3.1.1, 2.3.9, 3.2.0) nie ma tej samej wersji dla pliku wynikowego w obu przypadkach. Edytować: Chcę, aby było tak samo w obu przypadkach, wcześniej nie byłem wystarczająco jasny.
Liczba kombinacji w instancjach nigdy nie przekroczy 100.
Miałem nadzieję na coś w rodzaju skrótu z ograniczeniami, które mogą prowadzić do czegoś takiego, ale niczego nie znalazłem. Jeśli ktoś znalazł rozwiązanie podobnego problemu ...
Dzięki !
Odpowiedzi:
0 dla odpowiedzi № 1W przypadku niewielkiej liczby niepołączonych „centrów tożsamości” - tylko numery partycji, które mogą być wydawane przez każde centrum.
Na przykład dla dwóch: jednego problemu 2*n
, inny 2*n+1
i liczby będą unikalne (pamiętaj tylko, aby sprawdzić, czy nie wydaje więcej niż 49)