Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Projektowanie bazy danych - powiązania tabel, Składowanie danych MyISAM InnoDB
malesja
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 10.06.2009

Ostrzeżenie: (10%)
X----


Mam pytanie dotyczące projektowania bazy danych: jaki projektować i jaki silnik powinienem wybrać?
Tzn.: MyISAM czy InnoDB

W bazie będę miał:
Tabele z rejestracją użytkowników (Imię, nazwisko, login, hasło, e-mail, konto_aktywowane(0,1))
Tabele z profilem, który każdy będzie mógł wypełnić po rejestracji o bardziej szczegółowe dane.
Inne tabele przechowujące dane, które będą uzupełniać użytkownicy.

Cześć serwisu będzie tak skonstruowana, iż po zalogowaniu system musi wiedzieć, z kim ma do czynienia i np. przy wypełnianiu profilu poprawnie dopisywać dane do tabeli z profilem danej osoby.
Jakieś relacje muszą tu chyba być. Wszystkie tabele muszą być jakoś ze sobą powiązane, bo będą rzeczy, że jedna tabela będzie się odwoływać do innej w celu pobrania dodatkowych danych w celu wyświetlenia danych z jednej i drugiejtabeli na stronie www.

Możecie mi coś napisać, jaki ten typ silnika zastosować. Myślę, że może trzeba będzie wykorzystać oprócz kluczy podstawowych klucze obce. Ale to wtedy tylko InnoDB. Jak przeglądałem bazę Joomla to żadnych tam relacji nie widziałem. Wczytałem strukturę CMSa do MySQL Workbench, ale tam żadnych powiązań nie było.
Nie wiem jak się zabrać za ten projekt żebym potem nie poprawiał go a żeby mi wszystko sprawnie funkcjonowało. Możecie coś doradzić? Napiszcie, jakiego silnika Wy używacie i jak projektujecie relacje? z wykorzystaniem kluczy i tabel pomocniczych może?

Z góry dzięki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
maly_swd
post
Post #2





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


Do tego co potrzebujesz wystarczy Ci MyIsam.

Relacje robisz przez JOINY i to ty decydujesz co sie laczy z czym;)
Go to the top of the page
+Quote Post
malesja
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 10.06.2009

Ostrzeżenie: (10%)
X----


Oj nie wiem czy to mi tylko wystarczy.

Weżmy taki przykład dany użytkownik się rejestruje i jego dane lądują w tabeli 'uzytkownicy' , ale jak wypełnia swój profil np. o skończoną szkołę, a potem jeszcze raz ten sam profil o skończoną szkołę tylko już drugą dwa fakultety to jak system, który będzie miał potem w jego profilu wyświetlić mu te dane albo np. poprzez osoby, które będą chciały ten profil oblukać system ma zidentyfikować Jasia Kowalskiego, który ma 2 typy ukończonych szkół w tabeli ze swoim profilem? Coś jak w naszej-klasie.

Ja myśałbym tak:
tabela uzytkownicy klucz podstawowy ID

tabela profile
klucz podstawowy plus klucz pomozniczy z tabeli uzytkownicy, ale to relacja jede do jeden, a przecież Jaś Kowalski mógł skończyć wiele szkół. Tworzyć tabelę pomocniczą z kluczem z tabeli uzytkownicy i tabeli profile?
Go to the top of the page
+Quote Post
maly_swd
post
Post #4





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


poczytaj o bazach danych.... kazda oferuje to co chcesz osiagnac...

MyIsam - taz daje Ci to co chcesz... Tylko podstawa, dobrze zaprojektowac baze
Go to the top of the page
+Quote Post
patryczakowy
post
Post #5





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

Ostrzeżenie: (0%)
-----


InnoDB oferuje ci relację w pełnym tego słowa znaczeniu myisam nie w tym drugim przypadku sam musisz zadbać o spójność danych. Korzystając z InnoDB i dobrze projektując bazę danych możesz sobie życie ułatwić jednak trzeba pamiętac że InnoDB jest wolniejsze od myisam
Go to the top of the page
+Quote Post
malesja
post
Post #6





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 10.06.2009

Ostrzeżenie: (10%)
X----


Cytat(patryczakowy @ 23.07.2009, 23:20:20 ) *
InnoDB oferuje ci relację w pełnym tego słowa znaczeniu myisam nie w tym drugim przypadku sam musisz zadbać o spójność danych. Korzystając z InnoDB i dobrze projektując bazę danych możesz sobie życie ułatwić jednak trzeba pamiętac że InnoDB jest wolniejsze od myisam


InnoDB mama rozumieć relacje, że w jakiejś tabeli oprócz kluczy glównych będą klucze pomocnicze odwołujące się na jakąś inną tabelę, w której ten sam klucz pomocniczy pełni już rolę klucza głównego w swojej glównej tabeli, a w MySQL korzystając z MyISAM jak się tworzy te relacje - jak zadbać o spójnośc danych?
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Możesz albo blokować zapis do tabeli i wykonywać co operację zapytania, albo skorzystać z triggerów.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 14:57