![]() |
![]() |
![]() ![]()
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 |
|
|
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 01:40 |