Wpis z mikrobloga

Witaj Mirko, załóżmy czysto-teoretycznie że mam jakiś system z bazą danych i np. 100 użytkowników. Każdy użytkownik ma swój unikalny ID w bazie. Do bazy można dodawać jakiś rodzaj informacji, taki sam dla wszystkich użytkowników. Jak przechowywać te dane w bazie? Najprościej jest stworzyć jedną tabelę np.:| idrow | userid | jakieś dane |, ale co jeśli każdy ze 100 userów stworzy np. po 30 wierszy? Macie jakieś pomysły na rozbicie takiej tabeli? Jak poprawić wydajność? Albo może korzystacie z innych technologii (poza MySQL)?
#programowanie #mysql #php #informatyka
  • 20
  • Odpowiedz
"Do bazy można dodawać jakiś rodzaj informacji, taki sam dla wszystkich użytkowników." ~ Czy chodzi Ci o to, że user a i user b, chce dodać dokładnie tą samą treść ale w bazie ma być ona zapisana tylko raz i przypisana do obu userów?
  • Odpowiedz
nie mam jeszcze żadnej struktury db, chodzi głównie o to czy dobrym rozwiązaniem jest trzymanie jednego rodzaju informacji wszystkich użytkowników w jednej tabeli


@zajeli-wszystkie-loginy: pisząc to w ten sposób masz na myśli oddzielnie tabele użytkowników i tabele danych, jeśli chodzi ci o to aby np dwóch użytkowników miało taką samą treść - to wtedy robisz tabele łączącą
  • Odpowiedz
@trb: @Golborkim: @g83kp9: @Darjo: @variable: @Jurigag:
mam jakieś informacje, np dokument X. Każdy użytkownik może dodać sobie taki dokument do swojego profilu/konta. Tworzę tabelę w której kazdy wiersz to jeden dokument X. i Teraz czy wszytskie dokumenty X trzymać razem w jednej tabeli czy zrobić to inaczej. Chodzi o efektywność i wydajność.
Przykład: w tabeli z dokumentami X znajduje się razem 300 wierszy z czego 100
  • Odpowiedz
@zajeli-wszystkie-loginy: tak, jedna tabela to wlasciwy sposob, do tego klucz na usera i zapytania beda wydajne. Jak dotrzesz do milionow rekordow to sie zaczniesz zastanawiac nad optymalizacjami typu partycjonowanie tabel. poza tym to jedyne rozwiazanie sensowne w przypadku jakbys chcial cos liczyc na dokumentach niezaleznie od usera
  • Odpowiedz
@variable: @trb: ta tylko nie powinien robić takiego zapytania jak napisałes, binding to podstawa, chyba że mamy pewność że wcześniej wartość $user jest przefiltorwana ale mimo wszystko binding
  • Odpowiedz
@zajeli-wszystkie-loginy: Dopóki tych rekordów nie będziesz miał kilka milionów to możesz spokojnie olać temat optymalizacji. Ilość danych o których piszesz jest mikroskopijna. Oczywiście zakładam, że będą założone odpowiednie indeksy (np. na user_id w tabeli documents)
  • Odpowiedz