Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Dużo shoutbox'ów
.Wojtek
post 1.06.2010, 22:59:42
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 22.09.2009

Ostrzeżenie: (0%)
-----


Witam

Na mojej przyszłej stronie, obok pewnej aplikacji, będę chciał zamieścić za każdym razem pustego shoutboxa. Dana rozmowa na shoutbox'ie będzie przypisana do niepowtarzalnego ID. Jeżeli kiedyś zostanie otworzona strona z tym ID, to wyświetli się tylko rozmowa, która była prowadzona pod tym ID. Nie zamierzam zbyt szybko usuwać wpisów shoutboxa, dlatego przewiduję, że tabela shoutboxa może mieć wiele tysięcy rekordów. Ze względów wydajnościowych jak najlepiej "zaprojektować" taką bazę danych?
Myślałem o dwóch rozwiązaniach:

1. Po prostu zrobić zwykły shoutbox na jednej tabeli sql i dodać pole ID_aplikacji i gdy będę wyświetlał shoutbox'a, przeszukiwać tabelę po tym ID:

czyli:
tabela `shoutbox`:
  1. ID || msg || ID_aplikacji
  2.  
  3. i
  4.  
  5. SELECT `msg` FROM `shoutbox` WHERE `ID_aplikacji` = '...'


2. ID_aplikacji będzie odnalezione w bazie do innego celu, więc może wpisy shoutboxa po linijce wpisywać do pola `wszystkie_wpisy_shoutboxa`?

czyli:
tabela `id_aplikacji`:
  1. ID || ID_aplikacji || wszystkie_wpisy_shoutboxa
  2.  
  3. i
  4.  
  5. SELECT `wszystkie_wpisy_shoutboxa` FROM `id_aplikacji` WHERE `ID_aplikacji` = '...'


Ten post edytował .Wojtek 1.06.2010, 23:04:25
Go to the top of the page
+Quote Post
tehaha
post 1.06.2010, 23:13:42
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


szczerze mówiąc nie widzę różnicy pomiędzy tymi dwoma opcjami oprócz innych nazwa kolumn, w każdym wystarczy jak wszystkie wiadomości będziesz trzymał w jednej tabeli i dasz tylko dodatkową kolumnę z ID aplikacji na podstawie, której będziesz pobierał rekordy przypisane do konkretnej strony czy tam aplikacji, nie ma sensu w takiej sytuacji bardziej tego komplikować
Go to the top of the page
+Quote Post
.Wojtek
post 1.06.2010, 23:52:55
Post #3





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 22.09.2009

Ostrzeżenie: (0%)
-----


Zaznaczam, że i tak będę musiał wyciągać pewne dane z tabeli `id_aplikacji` z wiersza o danym ID, więc może nie ma potrzeby robić osobno tabeli shoutboxa i przeszukiwać jej, tylko dodać pole, w którym bym wpisywał całą rozmowę danego ID? Nie wiem czy takie rozwiązanie nie utrudniło by dynamicznego wczytywania najnowszych wpisów shoutboxa... czarodziej.gif
Zastanawiam się czy mi takie przeszukiwanie shoutbox'a z np. milionem wpisów nie będzie spowalniało strony. snitch.gif

Ten post edytował .Wojtek 1.06.2010, 23:55:55
Go to the top of the page
+Quote Post
tehaha
post 2.06.2010, 00:15:54
Post #4





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


no w końcu baza danych została stworzona do tego, żeby przechowywać dużo danych, więc nie wiem w czym tu widzisz problem, najlepiej, żeby to było w osobnej tabeli i jeden wpis to jeden rekord, a nie jakieś kombinowanie, że całą rozmowę do jednego wiersza bo to więcej komplikacji wprowadzi, jeżeli zastanawiasz się nad szybkością działania to przecież możesz dodać milion rekordów i sprawdzić ile czasu zajmuje pobranie tego
Go to the top of the page
+Quote Post
.Wojtek
post 2.06.2010, 00:23:51
Post #5





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 22.09.2009

Ostrzeżenie: (0%)
-----


Oki, dzięki. Widzę, że po prostu nie wierzyłem w możliwości MySQL'a. laugh.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 11:28