Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 1 086 Pomógł: 8 Dołączył: 10.12.2003 Ostrzeżenie: (0%)
|
Potrzebuję stworzyć tabelę, która będzie kojarzyła ze sobą pozycje dwóch innych tabel:
1) Tabela "users" z id użytkownika i jego danymi 2) Tabela "hobby" z id hobby i nazwą hobby Chcę, aby każdy użytkownik mógł sobie obrać kilka zdefiniowanych przeze mnie hobby. Tworzę więc tabelę z dwoma polami: 1) user_id 2) hobby_id Teraz pytanie: Czy jest jakiś silny argument, aby dodawać pole id w tabeli łączącej? Zawsze mnie uczono, że id musi być i że ułatwia pracę, ale w tym przypadku szczerze mówiąc nie widzę zastosowania. Gdy user zmienia hobby po prostu kasuję jego dotychczasową listę hobby i tworzę jeszcze raz. Nie mam potrzeby odwoływania się do konkretnego wiersza tabeli łączącej. Co więcej boję się, że przy częstej zmianie hobby, wartości jej pól "id" drastycznie urosną mimo ogólnie małej ilości wierszy. Dlatego głównie nie chciałbym dodawać pola "id". Ten post edytował Zajec 6.04.2007, 23:10:03 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
Darti problem nie jest jak mi się wydaje banalny, bo jeśli chcesz wybrać osoby o danym hobby lub nawet kilku to nie jest problem.
Jednak gdy chcesz wybrać osoby o takich samych zainteresowaniach to pamiętaj że każdy może mieć inną długość listy hobby więc dla każdej osoby wybierasz takie które mają taką samą, takich osób może być kilka. Więc wybierasz osobę i jej zainteresowania np.: user_id|hobby_id 1|1 1|2 1|3 potem szukasz osoby która ma te zainteresowania, ale tu tracę pomysł jak... albo mam błędne założenia od początku. Ale wynikiem końcowym będzie tablica o dwóch polach user_id gdzie obaj użytkownicy mają te same hobby (przy czym będzie coś w stylu 1|2 i 2|1 z powodu że to jest relacja dwu kierunkowa) Mam małe doświadczenie w tworzeniu zapytań i jeszcze nie czytałem żadnej porządnej książki o tym :| Coś wykombinowałem, działa, ale optymalności to pewnie ani ciut, ciut nie ma:
proste nieprawdaż? i i tabelka taka:
jak macie lepsze pomysły piszcie. EDIT próba aby trochę połamało zapytanie Ten post edytował Sedziwoj 16.05.2007, 23:32:27 |
|
|
|
Zajec Mój pomysł: brak ID w tabeli 6.04.2007, 23:07:48
envp Oczywiście że id nie musi być. Id jest potrzebne t... 6.04.2007, 23:15:50 
Zajec Dzięki za odpowiedź. Pominę w takim razie id.
(Ba... 7.04.2007, 09:47:06
NuLL Zalezy w jakiej bazie - sa takie gdzie mozna zdefi... 7.04.2007, 04:59:45
maryaan primary key.... 7.04.2007, 10:11:57
Void(Null) Nie wiem czy dobrze rozumuje, ale...
Jeśli chodzi... 9.05.2007, 23:34:58
dr_bonzo Zajac: nie musisz robic IDka.
CytatId jest potrz... 9.05.2007, 23:56:13
Darti A ciekawi mnie przypadek, kiedy chcesz wybrać dwóc... 16.05.2007, 12:28:40
dr_bonzo Tylko dwoch?
[SQL] pobierz, plaintext SELECT h.nam... 16.05.2007, 12:48:03
Darti @dr_bonzo coś Twoja metoda nie działa, zmontowałem... 16.05.2007, 13:18:57
Sedziwoj Darti co nagle to po diable, co prawda tabela z sa... 16.05.2007, 20:50:23
Darti Tzn z mojego punktu widzenia ważna jest jedynie ta... 16.05.2007, 22:13:03
Darti @Sedziwoj jesteś geniuszem w tym temacie
działa ... 17.05.2007, 10:26:27
dr_bonzo 1. Darti: sorry za blad; zle zrozumialem twoja pro... 17.05.2007, 10:33:43
Sedziwoj Cytat(dr_bonzo @ 17.05.2007, 11:33:43... 17.05.2007, 22:24:37 ![]() ![]() |
|
Aktualny czas: 31.12.2025 - 16:47 |