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

Organizacja tabel dobre praktyki

Object Storage Arubacloud
+1 głos
344 wizyt
pytanie zadane 11 marca 2021 w SQL, bazy danych przez CSSoup Mądrala (6,460 p.)
Zastanawiam się nad tym jak organizować dane i czy moje podejście jest dobre.

Mam tabele "user", która zawiera dosyć sporo kolumn i moim zdaniem niektóre wypadałoby umieścić w osobnych tabelach. Przykładowo dane takie jak dane kontaktowe (adres, nr telefonu) oraz dane osobowe(rok urodzenia, imie, nazwisko itd.) wrzuciłbym do oddzielnych tabel, a w tabeli user zostawił jedynie kolumny takie jak login, e-mail i dane ogólne związane z kontem.

I tu pojawia się moje pytanie - czy takie podejście jest ok, czy może zbytnio kombinuje i wszystko powinno zostać w jednej tabeli?
komentarz 11 marca 2021 przez PreZmyK Pasjonat (21,470 p.)
A o czymś takim jak relacyjna baza danych, to kolega słyszał?
komentarz 11 marca 2021 przez CSSoup Mądrala (6,460 p.)
Nie rozumiem co to ma do rzeczy? Pytam o organizację danych w RELACYJNEJ bazie...
komentarz 11 marca 2021 przez PreZmyK Pasjonat (21,470 p.)
Jedna tabela to jaka ona tam relacyjna
komentarz 11 marca 2021 przez Wiciorny Ekspert (269,710 p.)

No to może kolega, jednak zamiast głupio komentować, to może sobie doczyta- i jednak pozna lepiej model relacyjny 
Bo często spotykana jest realcja tabeli z samą sobą, nawet ma to swoje zastosowanie :) 

a przy okazji z teorii : 
 

Relację ρ ⊂ A × A, nazywamy relacją równoważności, jeśli ρ jest relacją zwrotną, symetryczną i przechodnią. Relację równoważności oznaczamy symbolem ≈.

Relację ρ ⊂ A × A, nazywamy relacją równoważności, jeśli:
aρa dla każdego a ∈ A,
aρb ⇒ bρa   dla każdego abA,
- (aρb ∧ bρc) ⇒ aρc  dla każdego abc ∈

komentarz 11 marca 2021 przez adrian17 Ekspert (344,860 p.)

Bo często spotykana jest realcja tabeli z samą sobą

Też musisz doczytać :P Za normalną terminologią, to sama tabela już jest "relacją". Zależności między tabelami to wyższy koncept.

This model organizes data into one or more tables (or "relations") of columns and rows

komentarz 11 marca 2021 przez Wiciorny Ekspert (269,710 p.)

ale ja wiem, że sama tabela jest relacją, bo to jest okreslone już z góry przez sam fakt 
Teorii relacyjnej, która narzuca nam nawet pewną terminologię np. występowania krotek, atrybutów etc.
Ale tutaj nie miałem na celu robić wywód w tej sprawie, bo nie jest to tematem pytania.  

Baza bez tabel może mieć relacje też, jak i samo występowanie modelu E-R. 
Ja już miałem na myśli czynną relację tabeli samej z sobą przy projekcji. 

komentarz 11 marca 2021 przez PreZmyK Pasjonat (21,470 p.)
Rozumiem i wiem, że na jedną tabelę można łączyć w relacje, ale to nie oznacza, że tabela "user" to relacyjna baza danych.

Chciałem zwrócić uwagę, żeby autor tematu się temu przyjrzał, bo jest to ważne już na samym początku projektowania BD.

2 odpowiedzi

+1 głos
odpowiedź 11 marca 2021 przez SzkolnyAdmin Szeryf (86,360 p.)
Twoje podejście jest jak najbardziej słuszne. Głównie ze względu na bezpieczeństwo: każdej tabeli przypiszesz innych użytkowników z innymi uprawnieniami. No i ergonomia - łatwiej operować na mniejszej tabeli. Relacja 1-1 załatwia sprawę połączenia tabel.
komentarz 11 marca 2021 przez tkz Nałogowiec (42,000 p.)
Kwestia kontekstu.
komentarz 11 marca 2021 przez SzkolnyAdmin Szeryf (86,360 p.)
Możesz szerzej, najlepiej z przykładem.
komentarz 11 marca 2021 przez tkz Nałogowiec (42,000 p.)
Rozbijanie wszystkie na mniejsze tabele nie ma sensu przy prostych CRUDach. Dodatkowe obciążenie bazy łączeniami jest zbędne. Z kwestii czysto teoretycznej spoko, przy gigantycznych bazach nie zawsze ma to sens. Oczywiście dochodzi typ bazy, jej budowa, implementacja warstwy pośredniczącej. Po prostu autor podał za mało danych, by jednoznacznie stwierdzić, co będzie najlepsze, przynajmniej według mnie, stąd komentarz, że to zależy.
+1 głos
odpowiedź 11 marca 2021 przez Wiciorny Ekspert (269,710 p.)
Z jednej strony jest to okej, z drugiej no nie do końca.

Zauważ, że na tak małych danych faktycznie staje się to lepsze, ale robi się nam struktura gałęzi, idąc tym tokiem myślenia, pomyśl że kolejne tworzone tabele, nagle "wymagać zaczną" kolejnych relacji do innych i tak w koło.
Problem pojawia się przy może "nie " niewielkich danych ale przy większych jeśli chodzi o usuwanie np.
Musisz mieć na uwadze, pamiętać o tym, że jeśli pozbywasz się z tabeli A jakiegoś elementu , a on jest w relacji z B,C... itd, to należy o tym pamiętać tak samo idąc w głąb kolejnych wiązań

To samo jeśli struktura tabeli ulega zmianie, lub poszczególne krotki

Podobne pytania

0 głosów
1 odpowiedź 521 wizyt
pytanie zadane 30 października 2018 w SQL, bazy danych przez GhostZoombie Użytkownik (640 p.)
+1 głos
1 odpowiedź 362 wizyt
pytanie zadane 1 kwietnia 2021 w PHP przez michal_php Stary wyjadacz (13,700 p.)
+1 głos
2 odpowiedzi 498 wizyt
pytanie zadane 3 stycznia 2021 w JavaScript przez Bartx Bywalec (2,120 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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!

...