Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 25.09.2006 Skąd: Gdansk Ostrzeżenie: (0%)
|
Hej,
jestem na etapie wykonywania projektu na studia. Mam taki problem: Założenia: Jest sobie tabelka główna powiedzmy KSIĄŻKI , z nią w realcji typu JEDEN do WIELU tabelaka z osobami (relacja AUTORZY) bo założenie jest, że jedna ksiązka ma jednego autora, jeden autor moze napisać wiele książek. Dalej jest relacja WIELE do WIELU z Recenzentami. Czyli wiele osób daje recenzje dla pojedynczej książki, jeden recenzent recenzuje wiele ksiązek. Czyli mam KSIĄZKI, w niej atrybut tytuł oraz Id_osoby. Relacja wiele-do-wielu jest realizowana pośrednio przez tabelkę RECENZENCI, czyli mam jeszcze tabelkę RECENZENCI, a w niej relację Id_Ksiązki, Id_osoby. Ostatnia tabelka to OSOBY z polem Id_osoby oraz Nazwisko. Do łatwego wyświetlenia za pomocą PHP chciałem skorzystać z perspektywy z INNER JOIN, ale po pierwsze: w perspektywnie nie można dwa razy się odnośić do tego samego pola bo on nie wie które łączyć.
Wyskauje błąd - Osoby.Id_osoby już istnieją. A więc nie nakierowałem go, że ma podmienić tylko w pierwszym wpisie Osoby.Nazwisko, a w drugim wpisie skorzystać z drugiego złączenia INNER JOIN. Czy ktoś ma pomysł jak powinienem to zrealizować? Drugie pytanie: Jak w łatwy sposób zrobić wyświetlenie wyników perspektywy bez dublowania poszczególnych pól? Tzn jeżeli mamy wiele recenzentów, to po inner join powstanie taka tabela jak poniżej: TYTUL: Podstawy myslenia AUTOR: Miki Loki RECENZENT: Jan Mana TYTUL: Podstawy myslenia AUTOR: Miki Loki RECENZENT: Kijan Minit TYTUL: Podstawy myslenia AUTOR: Miki Loki RECENZENT: Roger Buj Ja bym wolał mieć taki wynik w perspektywie: TYTUL: Podstawy myslenia AUTOR: Miki Loki RECENZENT: Jan Mana, Kijan Minit, Roger Buj Da radę to jakoś uzyskać? -------------------- Inteligentny dom inteligentny dom tanio
Inteligentny budynek Automatyka budynkowa LONworks KNX KNX sklep KNX sklep eib |
|
|
|
![]() |
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
Odnośnie problemu pierwszego, to w każdej szanującej się bazie korzystającej z SQL-a masz coś takiego, jak aliasy. Składnie są dwie:
Kod nazwatabeli alias Kod nazwatabeli AS alias Później możesz odwoływać się do kolumn w danej tabeli za pośrednictwem aliasu, tj. alias.pole, a co ważniejsze - możesz mieć stworzonych kilka niezależnych aliasów na tę samą tabelę. Problem 2 -> to jest właśnie naturalny sposób pracy baz danych. Jeśli chcę je pokazywać w innej formie, stosownych przeróbek dokonuję już po stronie aplikacji, która te dane przetwarza i wyświetla. -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 25.09.2006 Skąd: Gdansk Ostrzeżenie: (0%)
|
Dzięki za pomoc, ale z aliasami próbowałem na prawo i lewo jakoś to powiązać z poleceniem Create View i się nie dało. Skorzystałem również z polecenia kopiowania tabeli jako OsobyR, ale to nie jest dobre rozwiązanie, bo aktualizując dane w perspektywie aktualizuje się kopie a nie orginały
Przedstawiam dwa rodzaje polecenia, które próbowałem uruchomić, ale wyrzucało błędy a) - błąd Invalid object name 'OsobyR'. b )
błąd Invalid object name 'OsobyR Dodam że Create View w sql 2008 musi być pierwszym poleceniem po GO a wewnątrz można tylko użyć jednego SELECT i wiele INNER JOIN. Tak samo wkrótce czeka mnie problem, bo chciałem na perspektywę transakcję założyć, ale ciągle wyrzuca błędy, że to perspektywa ma być pierwsza po go itp. Odnośnie drugiego problemu: tak myślałem... to co przedsatwiam powyżej to część mojej bazy (baza nawet nie jest o książkach -------------------- Inteligentny dom inteligentny dom tanio
Inteligentny budynek Automatyka budynkowa LONworks KNX KNX sklep KNX sklep eib |
|
|
|
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
Widzę tutaj jedynie aliasy na kolumny, a nie na tabele. Komunikat mówi jasno: baza nie wie, co to jest OsobyR.
-------------------- 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: 20.08.2025 - 02:56 |