• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Nadmiar kolumn w tabeli bazy danych?

Object Storage Arubacloud
0 głosów
479 wizyt
pytanie zadane 5 grudnia 2015 w SQL, bazy danych przez artimal Gaduła (4,800 p.)
Cześć, wiadomo, że w przypadku namiaru wierszy powtarzjących się rozbijamy to na nowe tabele. A co w przypadku kiedy tabela uzytkownicy posiadac bedzie np. 20 klumn (id, login, haslo, email, kodpocztowy, ulica, miasto, panstwo, punkty, zadanie, dzial,  temat, (...) )? Czy są jakieś zasady które mówią, żeby rozdzielic nadmiar  kolumn na nowe tabele? Czy warto? Nadmiar kolumn może wpływać na wydajność jeśli po SELECT będę pisał z jakich kolumn brać dane? :)

2 odpowiedzi

+1 głos
odpowiedź 5 grudnia 2015 przez mowmiheniek Stary wyjadacz (11,900 p.)
wybrane 6 grudnia 2015 przez artimal
 
Najlepsza
Hej. Powinieneś rozbić tą tabelę. Jeżeli miałbyś tabelę taką jak podał jeremus z jednym polem adres to jeszcze ok. Ale i tak bym to rozbił na mniejsze tabele bo: "wąskie tabele to bardziej efektywne przetwarzanie i składowanie ich na dysku, mniej operacji I/O". Dużo też zależy od tego jak będziesz używał swoją bazę . Jeżeli nie będzie dużo zapytań i rekordów to ok. Ale jak będzie ich tysiące to rozbij. Np. taka kolumna miasto, gdzie jest 1000 wpisów Kraków, a mógłbyś mieć 1000 wpisów IDmiasto np: 6. Pomnóż różnicę w ilości bajtów razy 1000 i dodaj inne powtarzające się miasta. Albo użytkownik będzie wpisywał Kraków, inny Krakow, a następny krakow. Przy tabeli słownikowej łatwiej znaleźć takie kwiatki i łatwiej bazę "pielęgnować". http://www.sqlpedia.pl/projektowanie-i-normalizacja-bazy-danych/
0 głosów
odpowiedź 5 grudnia 2015 przez Magicone Nałogowiec (45,100 p.)

W zasadzie wszystko w kolumnach relacyjnej bazy danych powinno być ze sobą powiązane. Każda tabela powinna dotyczyć pojedynczych informacji, osobno dla użytkowników, osobno dla adresu zamieszkania, osobne za elementy forum itp. Wtedy na każdą tabelę ustawiasz indeksy, a przy poleceniu SELECT robisz po prostu JOIN z tabelą, która Cię interesuje.

komentarz 5 grudnia 2015 przez artimal Gaduła (4,800 p.)

No mówi się, że tak się robi ale interesuje mnie co to za różnica. Gdy mam przykładowo takie polecenie do takiej przerośniętej w kolumny tabeli którą zaproponowałem: 

SELECT id, login FROM uzytkownicy WHERE login='Jan' AND punkty='100'

Wydaje mi się nawet, że takie skakanie po minimalnych tabelach może zmniejszyć wydajność. W końcu w zasadzie wszystko można rozbić na tabele o budowie ID - COŚ.

komentarz 5 grudnia 2015 przez jeremus Maniak (59,720 p.)
masz rację . Przesadna  "normalizacja" zmniejsza wydajność.

Trzeba zachować zdrowy rozsądek.Np. w przykąłdzie użytkownicy : imię, nazwisko, adres email, pesel,login hasło, adres zamiesz itd może jak najbardziej być w jednej tabeli , ale np jego hobby juz w drugiej tableli bo może mieć wiele . i nie wiesz ile , ale gdyby było ograniczenie hobby1 i hobby2 to umieściłbym takie pola w tabeli uzytkownicy.,

Podobne pytania

0 głosów
0 odpowiedzi 84 wizyt
pytanie zadane 23 czerwca 2023 w SQL, bazy danych przez roger10 Nowicjusz (180 p.)
0 głosów
0 odpowiedzi 320 wizyt
0 głosów
1 odpowiedź 324 wizyt
pytanie zadane 24 czerwca 2019 w SQL, bazy danych przez Bartson Nowicjusz (150 p.)

92,624 zapytań

141,482 odpowiedzi

319,822 komentarzy

62,005 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...