![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 102 Pomógł: 1 Dołączył: 26.07.2006 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Zaprojektowalem pewna strukture niestety moja wiedza nt. baz danych nie jest na tyle duza abym mogl jednoznacznie okreslic czy takie rozwiazanie jest dopuszczalne. Chcialbym aby wiekszosc obiektow w systemie bylo "zasobem". Kazdy obiekt mial by unikalny numer ID. Powiedzmy, ze mam dwa rodzaje obiektow: grafike oraz muzyke. Obydwa obiekty sa odzwierciedlone w bazie danych tabelami o tych samych nazwach. Problem polega na tym ze ID zasobu musi byc unikalne. Nie moze sie trafic grafika z tym samym id zasobu co muzyka. Mam wiec tabele "zasoby", ktora musi laczyc sie z tabelami grafika i muzyka w relacji 1-1. Jedyne rozwiazanie tego problemu, ktore przechodzi mi do glowy to stworzy taka tabele: ZASOBY ---------- ID RODZAJ LINK Kolumna rodzaj przyjmowala by wartosci 1 - dla muzyki i 2 - dla grafiki a kolumna link zawierala ID obiektu z ktorym jest polaczona. Takie rozwiazanie z pewnoscia dziala. Nie jestem jednak pewnien czy nie gwalci to wszystkich zasad dobrej praktyki bazo danowej ![]() Pytanie do Was drodzy eksperci czy takie rozwiazanie jest dopuszczalne czy powinno byc stanowczo zabronione? Jedyne co przychodzi mi jeszcze dlo glowy to usunac rodzaj oraz link i dla kadego typu obiektow tworzyc nowe tabele laczace ale w przypadku wielu typow obiektow mial bym mnustwo tych tabel. Ten post edytował Luciano 25.03.2010, 14:08:59 -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Jak najbardziej jest dopuszczalne. Klucze obce też jak najbardziej stworzysz. W tabelach dla poszczególnych typów po prostu zrób pole id o identycznej wartości, jak ID wiersza w zasoby, z którym są one powiązane. Dostajesz wtedy identyfikującą relację 1-1, a że takich tabel jest więcej, to cóż... baza danych to nie tylko formalna struktura, ale i semantyka, którą my sami definiujemy. Jej część można zapisać bezpośrednio w strukturze i powiedzieć: "tego mi pilnuj", ale w żadnym wypadku nie jest tak, że jak czegoś się nie da wyrazić, to jest to zabronione i nawiedzi Cię agent MySQL-a ze spluwą oraz hiszpańską ikwizycją, po czym Cię nafaszerują ołowiem.
-------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 09:35 |