Zaawansowany ( jak dla mnie ) SELECT

0

WItam,
Mam problem z wyszukaniem ( być może i z baza :) ).-MySql.
Sama baza zbudowana jest na dwóch tabelach. Jedna Przepisy ( idPrzepisy, Nazwa (varchar), skladniki (varchar, opis (varchar) a druga- komponenty (idKomponenty, mieso Tinyint(), rybyTinyint()...itd).
tinyint ustawione na 1 albo 0
Chodzi mi o to ze mam problem z takim wyszukanie - Np. chcę wyszukać przepis ale przez zaznaczenie np. Mięsa ( jako 1 ) i gdy dodam Ryby to mięso nie zniknie tylko sie dołączy w wyszukiwaniu itd.

Wszystko bedzie działało pod C# wiec będzie jakby ruchome - jedynka bedzie w kazdej chwili mogła się zmienić w 0 i na odwrót.
Dopóki jest wlączona 1 ma się wyświetlać zaznaczony komponent ale dla 0 ma go nie być- ufff.
Mam nadzieję że nie namieszałem strasznie.
Proszę o pomoc bo siedzę z tym drugi dzień.

1

masz źle zaprojektowaną bazę

0

To proszę o podpowiedź...

0

gdzie ?? np tutaj

komponenty (idKomponenty, mieso Tinyint(), rybyTinyint()...itd).

każda kategoria komponentu (mięso, ryby...) w oddzielnej kolumnie .. a co będzie jeśli dojdą Ci "warzywa" ?? czy będziesz przebudował bazę i dodawał do tabeli nową kolmnę "warzywo TinyInt" ???

0

Zrobiłem tak ponad godzinę temu, ale dalej stoję w tym samym miejscu.

0

co zrobiłeś ?
pokaż schemat całej bazy

1

Ja nie widzę powiązania między tabelami, ale potrzebujesz zrobić alternatywę w warunku WHERE, rozumiem, że jeżeli masz zaznaczone mięso i ryby to mam pobrać takie rekordy które przynajmniej jedno ma wartość 1.

select * from komponenty where mieso||tyby =1

lub to samo tylko bardziej rozlazłe

select * from komponenty where tyby = 1 or mieso = 1
0

Baza jest niekompletna, bo cały czas coś z nią kombinuje, ale powiedzmy że tak wygląda teraz.

0

Nie wiem co to ma rozwiązać, ale pierwsze co bym zmienił to tabelę śniadanie, obiad scalił bym w jedną np posiłek, dodają kolumnę typ, która będzie przechowywać info o tym czy to sniadanie/obiad jakby doszedł podwieczorek/obiad czy cokolwiek innego to opiszesz to spokojnie w danych, tabel mieso/ryby nie rozumiem więc nie podpowiem

0

@Darker:
to teraz zadaj sobie pytanie .. co będzie jeśli w menu pojawią się "warzywa" albo "nabiał" albo coś jeszcze innego ?? będziesz tworzył kolejne tabele pt. "nabial' , "warzywa" ???
co będzie jeśli pojawią się kategorie posiłku inne niż "śniadanie" albo "obiad" , czy też będziesz tworzył nowe tabele pt "podwieczorek" albo "kolacja" ?

przemyśl strukturę bazy

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