Zależność między logiką na wpisem w bazie

0

Mam formatkę, w formatce select z listą. Żeby było łatwo dodawać nowe elementy listę utworzyłem jako tabela w bazie danych. Po pewnym czasie okazało się, że w zależności od wyboru ma się dziać coś specjalnego. Czy to nie jest przypadkiem zła praktyka używać w kodzie identyfikatora tego rekordu z bazy, żeby sprawdzić która opcja została wybrana?

1

Czy to nie jest przypadkiem zła praktyka używać w kodzie identyfikatora tego rekordu z bazy, żeby sprawdzić która opcja została wybrana?

Wcale nie. Należy zadać sobie pytanie czego użyłbyś zamiast id? Nazwy operacji będącej polem varchar? No chyba nie :) Ja najbardziej używaj id. A jeżeli już koniecznie nie chcesz używać id to zmapuj je sobie na jakiegoś enum'a i używaj tego enum'a.

PS: Istnieje jeszcze kwestia przenoszenia klas reprezentujących encję z bazy do widoku, czego nie powinno się generalnie robić ale... to już materiał na inną historię.

1

Jeśli to słownik definiowany i modyfikowany tylko przez dostawcę oprogramowania, to pod warunkiem że wartości tych ID masz w jednym miejscu zdefiniowane - to jest OK.

Ale jeśli użytkownik może sobie tę tabelkę modyfikować a pole ID jest auto-inkrementalne to lepiej użyć klucza biznesowego typu "kod koloru" (np. _NIEB), który niekoniecznie jest widoczny dla użytkownika, ale używany w aplikacji.

Druga opcja to wyszukanie najpierw wartości ID wg klucza biznesowego (AK) a potem ew. używanie znalezionego numerycznego ID. Tak można robić np. w skryptach SQL do modyfikacji słowników.

1 użytkowników online, w tym zalogowanych: 0, gości: 1