Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Wiele możliwości w polu
konrados
post
Post #1





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


Cześć,

Pewnie już było wielokrotnie, ale nie umiem tego opisać i tym samym znaleźć.

Jaka jest najprostsza i właściwa metoda zaimplementowania czegoś takiego: są sobie artykuły i mogą dotyczyć wielu państw (które piszący wybierze z listy) - chodzi o strukturę tabel w bazie danych. Pierwsze co mi przychodzi na myśl to:

Tabela artykuly : id, tytul, etc...
Tabela panstwa: id, nazwaPanstwa
Tabela panstwaArtykuly: id, idPanstwa, idArtykulu

No i teraz kupa roboty, bo "zaznaczenie" przez użytkownika listy państw dla artykułu o id = 1 będzie wymagało dodania do tabeli "panstwaArtykuly" wielu rekordów - dla każdego to samo idArtykulu i różne idPanstwa. Wyszukiwanie artykułów z danego państwa (a taki jest cel) też pewnie nie da się zrealizować jedną linijką kodu.

A w tym mini CMS'ie do każdego artykułu będzie można dodawać jeszcze wiele "multipól" (tak to nazwałem (IMG:style_emoticons/default/smile.gif) ) takich jak tagi, kategorie (sport/muzyka etc.) i z tym moim pomysłem to będę musiał chyba z 10 tabel utworzyć i kupę kodu.

Wolałbym coś w rodzaju: państwa zdefiniowane w pliku php (więc łatwiejsza edycja i znika jedna niepotrzebna tabela) w stylu prostego arraya, zaś w tabeli artykuły pole typu varchar z numerami państw oddzielonymi przecinkami, ale jak później prosto wyszukać artykuły z wybranego państwa? Coś pewnie w stylu "SELECT .... where panstwa like poszukiwanePaństwo", czy dobrze myślę? Czy to nie byłoby prostsze i też "właściwe"?

Ten post edytował konrados 27.02.2011, 12:12:40
Go to the top of the page
+Quote Post
Grzyw
post
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


Cytat(konrados @ 27.02.2011, 12:07:29 ) *
Wyszukiwanie artykułów z danego państwa (a taki jest cel) też pewnie nie da się zrealizować jedną linijką kodu.

  1. SELECT * FROM artykuly JOIN panstwaartykuly ON panstwaartykuly.id_artykul = artykuly.id_atrykul WHERE id_panstwo=*

Cytat(konrados @ 27.02.2011, 12:07:29 ) *
w tabeli artykuły pole typu varchar z numerami państw oddzielonymi przecinkami, ale jak później prosto wyszukać artykuły z wybranego państwa? Coś pewnie w stylu "SELECT .... where panstwa like poszukiwanePaństwo", czy dobrze myślę? Czy to nie byłoby prostsze i też "właściwe"?
Pogwałcenie podstawowych reguł relacyjnego modelu baz danych:)
Rozwiązane z dodatkową tabelą jest standardowym, dobrym rozwiązaniem relacji wiele do wielu. Nie zmieniałbym nic.
Go to the top of the page
+Quote Post
konrados
post
Post #3





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


OK, dzięki!
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: 22.08.2025 - 17:19