Wpis z mikrobloga

#bazydanych #programowanie #podstawy

Załóżmy mam formularz:

-imię

-nazwisko

-wiek

-odpowiedź 1

-odpowiedź 2

-odpowiedź 3

-odpowiedź 4.



Jak to zrobić w bazie?

a) tabela Formularz i wszystkie te pola wypisane po kolei

b) tabela Formularz z danymi personalnymi, tabela Odpowiedzi z numeracją i relacja many-to-many (czyli tabela idFormidOdp).

Który sposób jest lepszy, szybszy, polecany w przypadku większych baz danych?
  • 34
  • Odpowiedz
@kmicolo: Robiłem joiny między 5 tabelami i większą ilością.

A jak zaprojektujesz taką bazę gdzie np. jest sobie tabela główna i do niej zapiętych kilka "słowników"?
  • Odpowiedz
@kmicolo: Ja już spotkałem się ze specjalistami od płaskiej tabeli, tylko po nich zazwyczaj sklejanie gówna się kończyło bólem głowy.

Jaki serwer do przodu? Wielomilionowe tabele z kupą joinów mamy na jednym serwerze, jak mamy zejść niżej, bo mocy mu nie brakuje?
  • Odpowiedz
@kmicolo: Nie istotne jakie to zapytanie, bo na bazie puszcza się różne zapytania. Baza to nie tylko dokument, to też triggery, funkcje, widoki, full text search. Wszystko ma swoje przeznaczenie i zastosowanie, Mongo jest i owszem dobrym narzędziem, ale jako wspomaganie w dużych systemach.
  • Odpowiedz
@kmicolo: Distinct. Zrób sobie słownik z tabeli na parę milionów rekordów. U nas na bazie taki distinct się wykonuje 15 minut żeby do usera wypchnąć słownik na kilkadziesiąt pozycji z parumilionowej tabeli.
  • Odpowiedz
@razvizion: mowimy o zapytaniach. Ani mongo ani mysql nie maja triggerow, funkcji (poza zdefiniowanymi), ani widokow (mysql costam biednego ma). Full text search to tez inna kategoria. Joiny zajezdzaja baze, a przy shardingu sa niemal niedostepne. Sa spoko przy prostych zapytaniach, ale przyklad wiadomosci do przeczytania pokazuje jak przydatna moze byc plaska struktura.
  • Odpowiedz
@echelon_: plaskie sa dobre wtedy kiedy sa potrzebne. Jesli masz userow i druga tabele ktora non stop ciagnie username to lepiej na plasko dolozyc ten username i oszczedzasz n zapytan gdzie n to liczba zapytan.
  • Odpowiedz
Kto przy poważnych projektach używa Mysqla? Tylko Postgres


@razvizion: A potrafisz to jakoś argumentować? Na forum Yii piszą, że wszystko jedno która baza, bardziej ważna jest jej konfiguracja...
  • Odpowiedz
@Windmark: To trochę subiektywny komentarz :) Wiesz używałem MySQL i Postgre, do tego pierwszego pewnie nie wróciłbym przy dużych projektach, fakt jest trudniejszy przy administracji, przy pierwszym spotkaniu odrzuca, a słoń jako GUI jest strasznie uciążliwy, ale póki co się to wszystko sprawdza. To jest akurat najważniejsze.
  • Odpowiedz