Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Maly problem z wyborem rozwiazania :)
Forum PHP.pl > Forum > PHP
thornag
Witam

Chce stworzyc cos na zasadzie strony gdzie kazdy moze zalozyc konto i wlasny kanal RSS (calosc celem treningu).

Wymyslilem tak.

Po zalogowaniu masz mozliwosc dodawania nowych naglowkow RSS. I problem powstal gdy przyszedl czas na zastanawianie sie jak to wszystko przechowac.

Przypuscmy ze portal bedzie dobry ceniony i bedzie mial nie wiem 2000 userow (to tak tylko celem przedstawienia sytuacji tongue.gif )

No i ma trzy rozwiazania...

1. Mozna tworzyc osobna baze dla kazdego usera
+ szybki skrypt (nie baza) i brak problemow z wyswetlaniem edycja czy usuwaniem
- jak sie pewnie domyslacie minusem jest samo obciazenie bazy tworzac w niej 2000 tabel po jednej dla usera (no chyba ze dla MySQL nie jest to problem wtedy bede zadowolony smile.gif )

2. Dla kazdego usera tworzyc katalog. Dla kazdego nowego newsa generowac przez php plik o numerze wyzszym od poprzedniego i zapisywac go pod postacia np .xml
+ nie obciaza bazy
- pewnie jest w stanie obciazyc serwer, problem z dostepami do pliku (kilka osob naraz), skrypt ktory mialby przy wyswietlaniu otworzyc np 50 plikow zczytac je do zmiennych itp itp bedzie pewnie cholernie wolny.

3. Moglbym to wsio wrzucic to jednej tabeli pod tytulem RSS i wyszukiwac pozniej w celu wyswietlania po nazach uzytkownikow itp.
+ no nie ma chyba problemow z przeszukiwaniem tongue.gif
- tabela bedzie zawierala straszna ilosc rekordow, oporcz ID dla kazdego newsa musialbym osobno indeksowac newsy okreslonych uzytkownikow przy czym z akazdym razem przy dodawaniu nowego trzeba odczytac najwyzszys tarszy (celem zwiekszenia go o jeden) a przy usuwaniu newsow rekordy z newsami uzytkownika musialy by byc indeksowane na nowo (usuwanie luki powstalej po usunieciu newsa)


moje pytanie brzmi ktory sposob jest najlepszy najszybszy najwygodniejszy itp. Moze jakis inny na ktory nie bylo dane mi wspasc, a moze ktorys jest dobry tylko wymaga innego podejscia i rozwiniecia.

Za wszelkie sygestie serdecznie dziekuje.

edit:

AD3 no z tego reindeksowania sie wycofuje bo tak naprawde to nie ma po co smile.gif
athabus
Podejście 3 to moim zdaniem jedyne sensowne podejście - w sensie 1 tabela a w niej wszystkie nagłowki - bo reszte chyba musisz jeszcze raz przemyśleć.
Kwestia dobrego zaprojektowania bazy.
Pytanie co rozumiesz przez straszną ilość rekordów? 1 milion, 2 miliony? Przy dobrych indeksach spokojnie będzie śmigać.
thornag
RE UP: Straszna ilosc (no moze nie taka straszna) to pwoiedzmy 2000x50 daje nam to 100000 rekordow. Nie wiem jaka wydolnosc ma MySQL dlatego pytam smile.gif Jesli bezproblemu to swietnie. Pozostale propozycje to po prostu moje rozmyslania na temat smile.gif noz widelec ktores sie okaze lepsze (niz teoretycznie oczywiste) rozwiazanie 3.

Dzieki za odpowiedz.

P.S. Wielokrotnie slyszalem o dobrym wykorzystaniu indeksowania. W ksiazkach ktore czytalem takze tylko wspominano o dobrym ich wykorzystaniu, nigdy natomiast nie bylo mi dane dowiedziec sie co to stricte sa indeksy jak ich uzywac itp. Gdzie znajdejakies pozadne info ?
dr_bonzo
1. Tylko to:
Jedna zestaw tabel (jedna nie wystarczy: users, channels, items, ...) dla wszystkich userow. Inne sa nielogiczne (1 tabela/usera) za wolne (xml). I nie wyszukuj po nazwie usera tylko po jego ID.
Cytat
a przy usuwaniu newsow rekordy z newsami uzytkownika musialy by byc indeksowane na nowo (usuwanie luki powstalej po usunieciu newsa)

Co?questionmark.gif
Po pierwsze duzo czesciej sie odczytuje dane niz je modyfikuje, wiec uzycie indeksow na id posta, id usera jest uzasadnione.

2.
Cytat
Chce stworzyc cos na zasadzie strony gdzie kazdy moze zalozyc konto i wlasny kanal RSS (calosc celem treningu).

Dla mnie za mala funkcjonalnosc, rssy sie przypina do blogow, serwisow, tak ze podazajac za wpisem masz dostep do reszty artykulu, mozesz go skomentowac itd.
thornag
Cytat
I nie wyszukuj po nazwie usera tylko po jego ID.


Tak wiem wiem, tak mi sie tylko napisalo.

Cytat
Co?questionmark.gif
Po pierwsze duzo czesciej sie odczytuje dane niz je modyfikuje, wiec uzycie indeksow na id posta, id usera jest uzasadnione.


Wycofalem sie wszak z tego....

Cytat
Dla mnie za mala funkcjonalnosc, rssy sie przypina do blogow, serwisow, tak ze podazajac za wpisem masz dostep do reszty artykulu, mozesz go skomentowac itd.


Zeby przypinac rssy trzeba je umiec kreowac. Jak pisalem nie zamierzam tego nigdzie publikowac, ot spodobaly mi sie strony z podcastami, a tam to podobnie wyglada, zakladasz konto tworzysz podcasta wrzucasz na serwer, stwierdzilem ze probujac zrobis cos podobnego moze w koncu lizne xmla.

Na przyszlosc prosze z wieksza uwaga przeczytac tresc calego posta, i zrozumiec nim sie odpowiada. A tak to post nie wnosi nic nowego (wyzej zostalo zawarte prawie to samo) a do tego nie prosilem o poczuczenia a rady i pomysly. Co do malej funcjonalnosci coz, nikt nie mowi ze wszystko co pisze musi miec od razu funkcjonalnosc jak windows lub jej brak jak (zgadnijcie) widnows.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.