Witam,
mam pytanie odnośnie pisania czytelnego zapytania MySQL. Chodzi o łączenie dwóch tabel, ale w taki sposób bym po przeczytaniu kodu widział co napisałem.
Zobaczcie to na poniższym przykładzie:
Tabela JAKOSCI:
ID, JAKOSC
1, kiepska jakość
2, średnia jakość
3, dobra jakość
4, najlepsza jakość
Oraz tabelę PRODUKTY z czego każdy ma swoją jakość:
ID, PRODUKT, JAKOSC_ID
1, produkt1, 1
2, produkt2, 3
3, produkt3, 1
4, produkt4, 2
5, produkt5, 3
6, produkt6, 2
Teraz chodzi mi o to, że chciałbym z poziomu kodu już wiedzieć, że wyciągam meble z jakością dobrą i najlepszą. A zapytanie tego typu jest mało czytelne:
SELECT produkt FROM produkty WHERE jakosc_id = 3 OR jakosc_id = 4
Wiecie, patrząc na kod zastanawiasz się czym jest 3 i 4.
Od razu piszę, że nie wchodzi w grę łączenie obu tabel po LEFT JOINIE i wpisanie warunku WHERE jakosci.jakosc = "dobra jakość" OR jakosci.jakosc = "najlepsza jakość" ponieważ tą wartość może edytować sobie użytkownik z poziomu formularza. Może zmienić jej zapis (sam tekst) ale przez to nie straci ta jakość sensu, że to na przykład "średnia jakość". Czyli "średnia jakość" niezależnie jak użytkownik ją sobie nazwie będzie miała id = 2.
Da coś się z tym sensownego zrobić? Czytałem na stackoverflow o zdefiniowaniu w projekcie stałych (CONST) i posługiwania się nimi w zapytaniach SQL. Czy pozostaje mi używać id jakości w zapytaniach i komentowanie sobie tego?