![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 7.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
witam, chciałbym się dowiedzieć a może bardziej upewnić czy projekt króry właśnie szykuje ma rację bytu. Będzie to baza danych w MySQL. w tej bazie będzie ok 15 tabel o wymiarze 3000wierszyx500kolumn więc w moim mniemaniu całkiem dużo. Taki wymar jest chyba najlepszą opcją dla mojego serwisu.
czyli: _________nazwa1__nazwa2__nazwa3__nazwa4...... element1______0______1______0______1 element2______1______1______0______0 element3______1______0______0______1 element4______1______0______1______0 : : : wiec tak wygląda idea jednej z 15 tablic. nazw bedzie ok 500, elementów ok 3000. W wartościach będzie true or false, czyli 0 i 1. Cały bajer polega na tym, że użytkownik wybierze sobie powiedzmy ok 15 nazw i zadaniem serwera będzie zwrócić wszystkie elementy które zawierają się w zadanym zbiorze, czyli mają jedynki w odpowiedniej kolumnie. czyli np. zadaje mu, że ma szukać po nazwach 1,3 i 4 i powinien zwrócić elementy 3 i 4. Jeden element będzie miał ok 10 jedynek w wierszu, czyli ok 490 pól będzie zerami. Sposób szukania mam juz opracowany i będzie to szukanie nie po "jedynkach" czyli tam gdzie element występuje, ale po "zerach", dzięki czemu wyeliminuje rekordy niespełniające założenia. Nie wiem czy to aby dobry pomysł... czy nie zamuli serwera... wielkość całej bazy (to znaczy jej zawartości) szacuje na jakies 8-10Mb czyli relatywnie nie dużo, za to będzie masa szukania. Proszę powiedzcie czy MySQL pociągnie takie szukanie. przewiduję może i optymistycznie, że odwiedzin stron będzie ok 10000 dziennie (przynajmniej na tyle chciałbym, aby strona była przygotowana) Czy MySQL to dobra opcja? Z góry dziękuję za odpowiedz. Pozdrawiam! |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 7.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
dzięki za komentarz. więc generalnie zamiar jest taki: jest ok 500 złów kluczowych (czzyli kolumny) i mam powiedzmy 50000 rekordów. kazdy rekord sklada się z jakiejś tam liczby tych słów, powiedzmy ze około 15 (nie będzie więcej niż 30). użytkownik wybiera sobie jakąs tam ilość słów kluczowych i baza ma mu zwrócić wszystkie rekordy w których ich słowa zawierają się w zadanych słowach. czyli
mam dany element1 o słowach (1, 3, 5) element2 o słowach (2, 3, 5) element3 o słowach (1, 3, 4) a uytkownik wybierze (1,3,4,5,7) to program ma zwrócić element1 i element3. I tak jak mówie słów będzie ok 500 (wiem jakie to będą słowa) a elementów (rekordów) ok 50000. można zrobić tabele tak: __________id______słowa__________costam1________costam2 element1___1_____1 4 5 8___________blabla__________blabla element2___2_____1 3 6 8___________blabla__________blabla element3___3_____2 4 6 7___________blabla__________blabla : : : gdzie blabla to dodatkowe nie istotne dane dotyczące elementu. W komurce słowa umieszczałbym słowa dotyczące danego elementu, ale obawiam się, że szukanie danego rekordu za pomocą ciągu słów może trwać bardoz długo. wydaje mi się, że najrozsądniej jest zrobić taki arkusz kalkulacyjny, zajmie mniej miejsca na dysku, za to będie miał 500 kolumn zamisat 5... słowa będą wyrazami, zatem każde słowo będzie się składało powiedzmy z 10-12 liter. można w celu usprawnienia zastąpić je cyframi(zzajmie mniej miejsca i algorytm szukania powinien mieć łatwiej) tak mi sie przynajmniej wydaje. Mam nadzieję ze istota funkcjonalności jest teraz jasna. Może MySQL ma taką możliwość szukania zbiorów zawierających się w zadanym zbiorze?? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Może MySQL ma taką możliwość szukania zbiorów zawierających się w zadanym zbiorze?? Cała istota relacyjnych baz danych opiera się na arytmetyce zbiorów. Większość systemów bazodanowych, w tym MySQL, lepiej pracuje mając tabele 'wąskie' ale 'długie', dlatego normalizacja jest tutaj jak najbardziej wskazana. Nie mówiąc o tym, że być może tobie jest po prostu FULL TEXT search potrzebny? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 18:22 |