![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Witam, zaprojektowałem sobie właśni małą bazę danych do projektu, który niebawem ma ruszyć. Mam kilka pytań i wątpliwości.
Może najpierw cała struktura:
Jak widać tabele zostały już powiązane - chyba jest dobrze. Utworzyłem dodatkowo widok, który pozwoli ułatwi mi tworzenie zapytań w php. I tutaj pierwszy problem: Będę potrzebował wyciągnąć danego potwora z bazy z całym lootem. Tabele: monsters, loot, items, chance Teraz pytanie jak złączyć te tabele, aby się zbytnio w php nie narobić i zrzucić większość na MySQL, myślałem o widoku, jednak dla jednego potwora loot może zawierać od kilku do kilkunastu elementów. Drugie jest pytanie: Czy można zaprojektować to lepiej? W inny sposób? Może inne typy pól? Starałem się wszystko starannie przemyśleć i ocenić +/- ile danych gdzie będę przechowywał. -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 305 Pomógł: 25 Dołączył: 27.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Z tabli comments wywaliłbym news_id i przeniósł do osobnej tabeli. Co jeśli będziesz chciał dodać możliwość komentowania dla czegoś innego? Ale to taka drobnostka
![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Z tabli comments wywaliłbym news_id i przeniósł do osobnej tabeli. Co jeśli będziesz chciał dodać możliwość komentowania dla czegoś innego? Ale to taka drobnostka ![]() Komentarze mają być tylko dla newsów w dodatku moderowane - o widzisz już jest coś o czym zapomniałem. Swoją drogą, dodać zwykłe pole które da znać czy zaakceptowany? Ten post edytował fifi209 31.07.2010, 20:11:33 -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 305 Pomógł: 25 Dołączył: 27.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Komentarze mają być tylko dla newsów w dodatku moderowane - o widzisz już jest coś o czym zapomniałem. Swoją drogą, dodać zwykłe pole które da znać czy zaakceptowany? Zazwyczaj wystarczy pole typu BOOL. Można też dać pole 'status' (TINYINT) i mieć kilka wariantów moderacji. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Zazwyczaj wystarczy pole typu BOOL. Można też dać pole 'status' (TINYINT) i mieć kilka wariantów moderacji. Wystarczy mi możliwość akceptowania. ;p -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 17.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
w czym problem z tym zlaczeniem?
robisz normalnego left joina odpowiednich tabel i tyle... jak dany monster bedzie mial wiecej lotow to np. w widoku monster bedzie powtorzony odpowiednia ilosc razy... kwestia tak na prawde do czego to potrzebujesz? bo biorac pod uwage uzytecznosc to chyba lepiej zrobic jakis obiekt - monster i dolozyc mu metody zwracajace informacje na temat lotow i innych spraw ![]() ![]() ![]() ![]() ![]() Ten post edytował blawat 31.07.2010, 20:33:36 -------------------- blawat
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
w czym problem z tym zlaczeniem? robisz normalnego left joina odpowiednich tabel i tyle... jak dany monster bedzie mial wiecej lotow to np. w widoku monster bedzie powtorzony odpowiednia ilosc razy... kwestia tak na prawde do czego to potrzebujesz? bo biorac pod uwage uzytecznosc to chyba lepiej zrobic jakis obiekt - monster i dolozyc mu metody zwracajace informacje na temat lotow i innych spraw ![]() ![]() ![]() ![]() ![]() Wolę pomyśleć raz i się poradzić, niż później żałować złego wyboru. Właśnie jak zrobię widok to będzie powtórzone ileś razy, a nie da się zrobić tak, aby wyciągać wszystko naraz? tj. jedno zapytanie - jeden rekord - jeden potwór i CAŁY loot Ten post edytował fifi209 31.07.2010, 22:00:08 -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 17.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
jedno zapytanie - jeden rekord - jeden potwór i CAŁY loot jesli masz kilka loot'ow w bazie (kilka rekordow) to jak chcesz jendym zapytaniem wyciagnac jeden rekord ktory bedzie zawieral w sobie wszystkie te rekordy? takiego czegos sie nie da zrobic - a przynajmniej mi na ten temat nic nie wiadomo.... napisz sobie funckje w php ktora z otrzymanej tablicy wyniku z bazy zrobi ci tablice "dwu wymiarowa" - w "pierwszym wymiarze bedziesz mial potwora a w drugim tablice z lootami" -------------------- blawat
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 229 Pomógł: 34 Dołączył: 7.12.2008 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
GROUP_CONCAT?
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 15:56 |