Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ID z dwóch róznych tabel w jednej kolumnie trzeciej tabeli
Forum PHP.pl > Forum > Bazy danych > MySQL
piotrek24
Czy sytuacja przedstawiona na poniższym schemacie jest poprawna / normalna czy jest to jakiś dziwoląg którego nie powinno się stosować i mam źle zaprojektowaną bazę danych.
Są dwie różniące się budową tabele [tabela 1 i tabela 2], a w trzeciej tabeli [tabela 3] chcę gromadzić wspólne informacje ich dotyczące. I czy relacje pomiędzy tymi trzema tabelami powinny właśnie tak wyglądać?.

jastu
No nie jest to zdrowe rozwiązanie - ten sam efekt możesz uzyskać zapytaniem (union) lub przez zbudowanie widoku. Czemu ma to służyć ? Na twoim miejscu zastanowiłbym sie nad słusznością takiego rozwązania.
Pozdrawiam
piotrek24
Tak dzięki za odpowiedź i masz rację zrobię to UNION-em winksmiley.jpg. Chciałem zrobić to już wcześniej, ale nie mogłem sobie poradzić z grupowaniem wartości. To znaczy zawsze dostawałem podwójne wartości jedną z tabeli 1 a drugą z tabeli 2, rozwiązanie znalazłem przed chwilą na innym forum:

  1. SELECT username,postedby,sum(views) AS views FROM (SELECT users.username,
  2. old_news.postedby,
  3. old_news.views
  4. FROM users LEFT JOIN old_news ON users.id = old_news.postedby
  5. UNION ALL
  6. SELECT users.username,
  7. new_news.postedby,
  8. new_news.views
  9. FROM users LEFT JOIN new_news ON users.id = new_news.postedby ) dt
  10. GROUP BY username,postedby
  11. ORDER BY views DESC


O coś takiego właśnie mi cały czas chodziło. Rekordy grupowane są wspólnie dla obydwu tabel.
Wkleiłem może się komuś przyda. Chodzi oczywiście o ogólna ideę.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.