![]() |
Relacje jeden do wielu w mysql - Wersja do druku +- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl) +-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www) +--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych) +--- Wątek: Relacje jeden do wielu w mysql (/thread-relacje-jeden-do-wielu-w-mysql) |
Relacje jeden do wielu w mysql - lukaszm89 - 22-03-2012 Witam, Jestem początkującym więc proszę o wyrozumiałość ![]() RE: Relacje jeden do wielu w mysql - Pedro84 - 22-03-2012 Relacje 1:m pomiędzy obiektami najlepiej jest zrobić za pomocą tzw. "pivot tables", ale jest też inne podejście. W przypadku relacji 1:1 takową można spokojnie zrobić za pomocą istniejących tabel, w przypadku relacji 1:m, m:m są dwa podejścia: 1. wykorzystanie "pivot tables" i kluczy obcych 2. w przypadku naprawdę obciążonych serwisów często normalizację się olewa i stosuje np. pole, w którym jest przetrzymywana zserializowana tablica. Jak mniemam, dla Ciebie lepsze będzie wyjście pierwsze, inaczej byś o to nie pytał. A więc. Po pierwsze, kilka rad: 1. przyjmij nazewnictwo anglieskie - uwierz mi same plusy - np. przy mapowaniu na obiekty z użyciem jakiegoś ORMa, np. Doctrine, napotkasz wiele problemów z generowaniem kodu. Poza tym, świat IT mówi po angielsku. 2. Jedna konwencja nazewnictwa. Taką konwencję? OK. Ale wówczas, tabele nazywaj tak samo, nie stosuj żadnych durnych skrótów typu gwar. Przykład. Masz dwa obiekty: User oraz Picture. Jeden user może mieć wiele zdjęć, ale jedno zdjęcie może należeć do kilku userów. Mówiąc o zdjęciu mam na myśli obiekt z bazy danych, nie fizyczną fotkę. Z więc masz tabele: Kod: User: tworzysz sobie dodatkowo następującą tablicę: Kod: UserPictures: // pamiętaj, żeby obiekt nadrzędny był pierwszy w nazwie - oczywiście ma to znaczenie tylko z punktu widzenia projektu dla zapewnienia integralności bazy ustaw sobie klucze obce w nowo utworzonej tabeli: Kod: UserID => ID z User Voila! |