Wpis z mikrobloga

Uczę się programowania w #csharp i tworze aplikacje webową (Entity i linqu)

nie ogarniam jak zrobić 2 taski
1) Przykładowo mam tabele produkty (productID, productName, code, descritpion, isDeleted)
I chce zrobić wyszukiwanie po wszystkich polach czyli np ktoś wpisuje Nazwę produktu i jego kod w polu wyszukiwania i jak to zrobić od strony kodu / zapytania?

2) Jak najoptymalniej pobrać kilka cen tego samego produktu.

Tabela produkty i tabela ceny gdzie jeden produkt może mieć kilka cen z różnych miejsc (takie ceneo)
Jak to zoptymalizować i podczas wyświetlania listy produktów wyświetlić również kilka cen? Baza danych i przechowywanie cen w osobnej tabeli wraz z id produktu i źródła to dobry pomysł?

#sql #naukaprogramowania
  • 6
@mmzf: 1. dbContext.Where(e => e.productId == productId && e.productName == productName)
2. poczytaj o SQL joinach, stworz procedure ktora bierze parametr np. productId i laczy odpowiednim joinem tabele produkty i ceny.
@mmzf:
1. jeżeli chcesz, żeby user wpisywał nazwę albo id produktu w jedno pole, to po stronie backendu musisz zrobić metodę, która w tabeli przeszuka daną frazę dla wszystkich pól z warunkiem 'OR'. Czyli
productId == zapytanieUsera || productName == zapytanieUsera || code == zapytanieUsera itd

2. tak
1. jeżeli chcesz, żeby user wpisywał nazwę albo id produktu w jedno pole, to po stronie backendu musisz zrobić metodę, która w tabeli przeszuka daną frazę dla wszystkich pól z warunkiem 'OR'. Czy


@Priya: To mi przyszo pierwsze na myśl ale co w przypadku jak wpisze: "Jabłko 423234"
@mmzf: To zależy jaką logikę przyjmiesz. Najprościej mógłbyś rozdzielić tekst na poszczególne słowa i szukać dla każdego osobno. W zależności od tego, jak to zrobisz możesz uzyskać też Jabłka z Id 12456, a nie tylko 423234