Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Relacje 3 tabel po sobie, tabela1 -> tabela2 -> tabela3
Sh4dow
post
Post #1





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

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


Uzywam programu DBDesigner 4 do tworzenia oraz obrazowania baz danych dla mysql'a. Jako ze relacje dopiero co zaczynam poznawac, nie wiem czy dobrze to robie czy nie.
Mam takie tabele, users, category, links. Nie wnikajac w szczegoly czy tak jest dobrze czy nie sa miedzy tymi tabelami relacje.
table Links posiada kolumne category_id z powiazaniem do pola id w tabeli category, natomiast tabela category ma pole users_id z powiazaniem do pola ID w tabeli users.
I taraz moj problem. Kiedy tworze relacje w ostatniej z rzedu kolumnie (links) zamiasttylko jednego pola tworza mi sie 2 nowe pola, category_id oraz category_users_id, obie kolumny to FOREIGN KEY.
Czy tak powinno sie robic relacje w rzedzie ?
czy ktos ma cos na temat relacji ? najlepiej na przykladzie mysql'a.
Na forum znalazlem cos o relacjach 1:n i 1:1. Moze ktos powiedziec cos wiecej na ten temat ?


--------------------
Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota
Zarządzaj swoim budżetem domowym
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
sobstel
post
Post #2





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

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


cos tu nie tak. users : category to 1 : n (jeden konkretny user moze miec wiele kategori, jedna konkretna kategoria moze byc przypisana tylko do jednego usera), a category : links to tez 1 : n (konkretna kategoria moze miec wiele linkow, ale jeden konkretny link moze byc przypsiany tylko do jednej kategori). w tabeli category bedzie jeden klucz obcy users_id a w tabeli links jeden klucz obcy category_id. db designer sam wtorzy klucze obcy przy tworzeniu relacji, oczywiscie sa ta relacje 1 : n nieidentyfikujące (przerywana linia).

co do relacji 1:1 w praktyce raczej sie nie stosuje, no moze w szczegolnych przypadkach, oznacza ona ze jeden wiersz jednej tabeli odpowiada dokladnie jednemu innej, czyli wlasciwie nie ma sensu istnienia tych 2 tabel, bo moga byc w jednej i tej samej.


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 01:40