![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 177 Pomógł: 0 Dołączył: 8.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
dostaję taki plik xml z opisami produktów:
w jaki sposób zapisywać to do bazy danych aby móc stworzyć wyszukiwanie według cech czyli np. chciałbym wyszukać wszystkie 17 calowe monitory które posiadają jasność 300cd/m2. wymyśliłem coś takiego: Kod id |id_produktu |kategoria|nazwa_cechy |wartosc |jm ----------------------------------------------------------------- 1 |MONASUL170006 |MON-L17 |Kod Producenta |VB172T | 2 |MONASUL170006 |MON-L17 |Format obrazu |5:4 | 3 |MONASUL170006 |MON-L17 |Przekątna ekranu|17 |cale 4 |MONASUL170006 |MON-L17 |Rozmiar plamki |0.264 |mm 5 |MONASUL170006 |MON-L17 |Jasność |300 |cd/m2 i teraz mogę robić takie zapytanie:
czy ktoś ma jakąś lepszą koncepcję jak to zorganizować? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 5 Dołączył: 12.09.2006 Skąd: Pruszków/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Przede wszystkim unikalbym zapisywania w bazie w kolumnach jakiegokolwiek tekstu. Domyslam sie, ze przesylany XML ma z gory okreslony format i dane, ktore sie w niego wklada. Zatem nie
ale:
I poszczegolne ID pozapisywac w oddzielnych tabelach i joinowac. Dlaczego? W madrych ksiazkach wyczytalem, ze nalezy jak najwiecej rzeczy w zapytaniu wykonywac w modelu relacyjnym, dlatego tez takie zapytanie przedstawione przez Ciebie jest zle, bo musisz przeszukac WSZYSTKIE WIERSZE TABELI. A czy nie lepiej zrobic tak:
Jesli umiejetnie zrobisz generowanie takiego zapytania to nie potrzeba robic nawet warunkow WHERE, gdyz wszystkie warunki zmiescisz w warunkach zlaczenia, zgodnym ze standardem SQL92. Choc przyznaje, ze to co pisze to teoria, jak to w praktyce wyjdzie to juz pokombinuj. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 22:43 |