Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Projekt bazy dla katalogu on-line, Prośba o podpowiedź
pszczółek
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 3.04.2009

Ostrzeżenie: (0%)
-----


Witam,
mam małą prośbę, proszę o pomoc w rozwiązaniu problemu.
Robię taki mały projekcik, dokładnie katalog on-line(wprowadzanie danych, wyszukiwanie publikacji, czy autorów) magazynu który pojawia się 2 razy w roku. Jest to zbiór publikacji naukowych. Problem wyskoczył mi po tym jak poprosiłem kolegę o pomoc z pewnym prostym INSERTem. Stronę www i bazę stworzyłem, już byłem happy, nagle przy tworzeniu formularza pojawiło mi kilka wątpliwości. Chodzi o:
Występuje połączenie każdy z każdym, tj. każda publikacja może mieć wielu autorów, każdy autor może mieć wiele publikacji. Dlatego też chodzi mi o jakiś pomysł żeby mój system był tak zaprojektowany by uniknąć powtarzania się rekordów w którejś (lub w każdej (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) z tabel. Chodzi mi o zrobienie tak tego że np. w przypadku podawania kilka razy tego samego autora żeby nie został mu nadany inny identyfikator.
Początkowo wyglądało to na proste zadanie, lecz tak nie jest (dla mnie).
Kolega podpowiedział mi także że można utworzyć sztuczną tabele, ale o tym zaraz..przedstawię Wam strukturę bazy:
  1. -- Struktura tabeli dla `autorzy`
  2. --
  3.  
  4. CREATE TABLE IF NOT EXISTS `autorzy` (
  5. `id_autor` int(4) NOT NULL AUTO_INCREMENT,
  6. `imie` varchar(20) COLLATE utf8_polish_ci NOT NULL,
  7. `nazwisko` varchar(40) COLLATE utf8_polish_ci NOT NULL,
  8. `id_publikacja` int(5) NOT NULL,
  9. PRIMARY KEY (`id_autor`),
  10. UNIQUE KEY `id_publikacja` (`id_publikacja`)
  11. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=4 ;
  12.  
  13. --
  14.  
  15. -- --------------------------------------------------------
  16.  
  17. --
  18. -- Struktura tabeli dla `numery`
  19. --
  20.  
  21. CREATE TABLE IF NOT EXISTS `numery` (
  22. `id_numer` int(3) NOT NULL AUTO_INCREMENT,
  23. `numer` int(3) NOT NULL,
  24. `czesc` int(2) NOT NULL,
  25. `rok` int(5) NOT NULL,
  26. `id_publikacja` int(5) NOT NULL,
  27. PRIMARY KEY (`id_numer`)
  28. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=2 ;
  29.  
  30. --
  31.  
  32. -- --------------------------------------------------------
  33.  
  34. --
  35. -- Struktura tabeli dla `publikacje`
  36. --
  37.  
  38. CREATE TABLE IF NOT EXISTS `publikacje` (
  39. `id_publikacja` int(5) NOT NULL AUTO_INCREMENT,
  40. `temat` varchar(600) COLLATE utf8_polish_ci NOT NULL,
  41. `sl_kl` varchar(400) COLLATE utf8_polish_ci NOT NULL,
  42. `strona` int(3) NOT NULL,
  43. `link` varchar(300) COLLATE utf8_polish_ci NOT NULL,
  44. `id_numer` int(3) NOT NULL,
  45. `id_autor` int(4) NOT NULL,
  46. PRIMARY KEY (`id_publikacja`)
  47. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=2 ;
  48. --
  49.  
  50. -- --------------------------------------------------------
  51.  
  52. --
  53. -- Struktura tabeli dla `sztuczna`
  54. --
  55.  
  56. CREATE TABLE IF NOT EXISTS `sztuczna` (
  57. `id_autor` int(4) NOT NULL,
  58. `id_publikacja` int(5) NOT NULL
  59. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;
  60.  
  61. --

Teraz tak..Kolega podpowiedział mi właśnie o tej tabeli "sztuczna" żeby w niej przechowywać tylko powiązanie identyfikatorów publikacji i autorów, będzie w jednym miejscu i będzie łatwiejsze wyszukiwanie, tylko teraz mi podpowiedzcie mi jak to zrobić.. bo jestem w kropce (przynajmniej dzisiaj, siedze nad tym już 8 h (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) )
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
tylko teraz mi podpowiedzcie mi jak to zrobić.. bo jestem w kropce

A o relacjach Waść czytał? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) I tabela sztuczna nie powinna nazywać się sztuczna tylko adekwatnie do modelu relacyjnego. Poczytasz o nim, to będziesz wiedział, jak.

Poza tym, stosuj nazwy konkretne, a nie `sl_kl`, które nic nie mówi. I po polsku raczej nie nazywaj (nie mam na myśli kodowania znaków). (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 15:08