Witam,
Takie małe pytanko. Co jest bardziej optymalne, stworzenie jednej dużej tabeli z wieloma kolumnami czy dwóch mniejszych z połową tamtych kolumn w każdej?
zapoznaj się z pojęciem normalizacja bazy danych i szczególnie z tzw trzecią i pół postacią normalną
Za tworzenie jednej dużej tabeli powinien być sąd polowy ;P
Dzięki za rady ;)
mysql_optymalizacja napisał(a)
Co jest bardziej optymalne
Nie ma czegoś takiego jak "bardziej optymalne". Albo coś jest optymalne albo nie.
Shalom napisał(a)
Za tworzenie jednej dużej tabeli powinien być sąd polowy ;P
Właśnie! Najlepsze tabele to te z jedną kolumną. ;)
A tak na serio, to nie da się odpowiedzieć na to pytanie nie wiedząc co ta tabela/tabele mają przechowywać. Bo może to kolejny pomysł na trzymanie lat w oddzielnej tabeli.
@somekind ja zrozumialem autora tak że on chce wcisnąć całą bazę do takiej "dużej tabeli" :P
Jeśli on chce po prostu mieć tabelę która ma dużo atrybutów, to ok, byleby miało to ręce i nogi.
Całą bazę danych wcisnąć do jednej tabeli? Nie no, aż takim nowicjuszem to nie jestem :P Chodziło mi bardziej o to, że np. mam tabelę w bazie z kolumnami: ID, LOGIN, HASLO, EMAIL, PODPIS, AVATAR, DATA DOLACZENIA, GG, SKYPE, DATA URODZENIA. I teraz czy lepiej byłoby właśnie zachować taką tabelę, czy zrobić z niej dwie mniejsze? (ID, LOGIN, HASLO, EMAIL, PODPIS i druga ID, GG, SKYPE itd.)? Jakbym jednak zostawił tą jedną tabelę to czy występowały by jakieś przekłamania danych? Co byłoby szybsze?
Chodzi ci o dodatkową tabelę w relacji 1:1 ? Tutaj to zbędna i wątpliwa optymalizacja. Takie rozwiązanie przydaje się np. kiedy w bazie masz jakieś duże dane (np. obrazek jakiś czy coś, powiedzmy zdjęcie usera) z których korzystasz rzadko, ale często korzystasz z danych tego usera. Wtedy warto wyrzucić te "ciężkie" dane do osobnej tabeli w relacji 1:1 żeby nie męczyć bazy ich przetwarzaniem kiedy nie jest to konieczne, a pozostawić w tej pierwszej tabeli te dane które są przetwarzane często.
I wszystko jasne, dzięki :)