: 03. Baza danych

Pary_anime

Tu znajduj± siê informacje dotycz±ce bazy danych


Za³o¿ono wspó³istnienie czterech tabel:


W miejscu gwiazdki nale¿y wprowadziæ elementy, do których odnosz± siê kategorie

Celem pierwszej tabeli jest okre¶lenie g³ównych parametrów kategorii takich jak w³a¶ciciela kategorii, numeru kolejnego kategorii dla wskazanego w³a¶ciciela kategorii, numer porz±dkowy oraz oznaczenie co do widoczno¶ci danej kategorii.
Tabela powinna zapewniæ:


Celem drugiej tabeli jest wsparcie procesu administracji kategoriami. Znajduj±ce siê tam informacje bêd± wykorzystywane jedynie przez Administratorów. Ten modu³ nie potrzebuje wielojêzyczno¶ci, chocia¿ go nie wyklucza.

Celem trzeciej tabeli jest zapewnienie wielojêzyczno¶ci nazw kategorii z jednej strony, a wskazaniem modu³u/pliku wywo³ywanego z drugiej strony. Za³o¿ono, ¿e w zale¿no¶ci od jêzyka mo¿e istnieæ konieczno¶æ wywo³ania innego pliku. Kategoria powinna mieæ mo¿liwo¶æ wp³ywania na wybór szablonów. Byæ mo¿e wybór pliku bêdzie wp³ywa³ na wybór szablonu.
Tabela powinna zapewniæ:


Ostatnia tabela okre¶la ca³y mechanizm powi±zañ pomiêdzy kategoriami. Tabela powinna daæ mo¿liwo¶æ pokazania relacji pomiêdzy kategoriami z uwzglêdnieniem w³a¶ciciela katalogów.
Tabela powinna zapewniæ:

syriusz napisa³(a):Za³o¿ono wspó³istnienie czterech tabel:

W miejscu gwiazdki nale¿y wprowadziæ elementy, do których odnosz± siê kategorie

czyli co bo nie rozumiem??

Cytat:
Celem pierwszej tabeli jest (...) numeru kolejnego kategorii dla wskazanego w³a¶ciciela kategorii, numer porz±dkowy (...)i.

wytlumacz mi po co 2 numery?

Cytat:
Celem trzeciej tabeli jest zapewnienie wielojêzyczno¶ci nazw kategorii z jednej strony, a wskazaniem modu³u/pliku wywo³ywanego z drugiej strony. Za³o¿ono, ¿e w zale¿no¶ci od jêzyka mo¿e istnieæ konieczno¶æ wywo³ania innego pliku. Kategoria powinna mieæ mo¿liwo¶æ wp³ywania na wybór szablonów. Byæ mo¿e wybór pliku bêdzie wp³ywa³ na wybór szablonu.

nadal nie rozumimem po co wielojezycznosc? czy nie mozna tego zrobic nastepujaco:
definiujemy kilka kategorii, kazda dla innego jezyka serwisu. do tych kategorii dolaczamy tylko to co mamy w danym jezyku. i odpada kombinowanie.
wg sposobu zaprezentowanego przez Ciebie, kazda kategoria musi miec wpisy dla kazdego jezyka.
czyli przy 10 jezykach dla kazdej kategorii trzeba dodac 10 wpisow w baze... troche duzo i jak dla mnie niepotrzebne...
co do szablonow to sie zgadzam - kazda kategoria musi miec swoj szablon, w wypadku NULL na przyklad, szablon domyslny
[/quote]

Cytat:
Ostatnia tabela okre¶la ca³y mechanizm powi±zañ pomiêdzy kategoriami. Tabela powinna daæ mo¿liwo¶æ pokazania relacji pomiêdzy kategoriami z uwzglêdnieniem w³a¶ciciela katalogów.

po co uwzgledniac wlasciciela katalogow? i tak nie powiaze nie swojej kategorii ze swoja, bo nie bedzie mial do innych dostepu....

Cytat:
Tabela powinna zapewniæ:


malo maslane
Sorry, ale potnê twoj± wiadomo¶æ. Zwiêkszy to czytelno¶æ.

roodee napisa³(a):syriusz napisa³(a):W miejscu gwiazdki nale¿y wprowadziæ elementy, do których odnosz± siê kategorie czyli co bo nie rozumiem??

System zak³ada uniwersalno¶æ i nie jest przypisana do jakiegokolwiek innego. To oznacza, ¿e bêd± mog³y byæ wykorzystywane wielokrotnie. W praktyce oznacza to, ¿e mo¿e byæ wykorzystywany przez wiele modu³ów, które bêd± inaczej mia³y ustawione kategorie.

W takiej sytuacji wystarczy w miejsce gwiazdek podstawiæ nazwê modulu. Np., gdy kategorie beda odnosi³y siê do artyku³ów, to w tym miejscu pojawi siê s³owo artykuly, gdy ksiegowo¶æ, to ksiegowosc, itd, itp.

Oczywi¶cie najlepiej by³oby mieæ jeden system tabel dla wszystkich modu³ów. Wystarczy³oby tylko dodaæ pole "nazwa modu³u". Ale nie wiem czy to dobre rozwi±zanie. U³atwia³oby to wiele, ale czy takie tabele nie by³yby zbyt wielkie.

Z drugiej strony (jak mawial skrzypek na dachu) - my¶lê, ¿e nazwa modulu powinna znale¼æ siê na koñcu nazwy tabeli. To u³atwi³oby administrowanie wszystkimi kategoriami we wszystkich tabelach.

Co o tym my¶lisz. Które rozwi±zanie Ci siê podoba?


roodee napisa³(a):syriusz napisa³(a): Celem pierwszej tabeli jest (...) numeru kolejnego kategorii dla wskazanego w³a¶ciciela kategorii, numer porz±dkowy (...) wytlumacz mi po co 2 numery? [...] roodee napisa³(a): syriusz napisa³(a):Ostatnia tabela okre¶la ca³y mechanizm powi±zañ pomiêdzy kategoriami. Tabela powinna daæ mo¿liwo¶æ pokazania relacji pomiêdzy kategoriami z uwzglêdnieniem w³a¶ciciela katalogów. po co uwzgledniac wlasciciela katalogow? i tak nie powiaze nie swojej kategorii ze swoja, bo nie bedzie mial do innych dostepu....

S³owo w³a¶ciciel wystêpuje to w znaczeniu loginu odpowiedzialnego za dany serwis, a niekoniecznie rzeczywistego uzytkownika. Mo¿e przecie¿ siê zdarzyæ, ¿e jeden u¿ytkownik posiada kilka serwisów.

Sczytywane parametry ze ¶cie¿ki dostêpu powinny (moim zdaniem) mieæ numery kolejne dla danego w³asciciela, by w wyniku oprogramowania nie zosta³a wczytane elementy z innego niezale¿nego serwisu pracujacego na tej samej bazie danych, chyba, ¿e taka jest wola w³a¶ciciela.

Dlatego inna numetracja jest dla w³±¶ciciela, a inna dla konserwatora i administratora systemu. Zreszt± i tak musi byæ ID dla ca³o¶ci. O ile w przypadku jednego w³a¶ciciela jest to jeden i ten sam numer, o tyle w przypadku wielu w³a¶cicieli te numery pokrywaæ siê nie bêd±.

Dlatego relacje maj± wystêpowaæ tylko pomiedzy kategoriami w³a¶cicieli. Jedynie na poziomie administratora widoczne mog± byæ wszystkie kategorie wszystkich w³a¶cicieli.
roodee napisa³(a):syriusz napisa³(a): Celem trzeciej tabeli jest zapewnienie wielojêzyczno¶ci nazw kategorii z jednej strony, a wskazaniem modu³u/pliku wywo³ywanego z drugiej strony. Za³o¿ono, ¿e w zale¿no¶ci od jêzyka mo¿e istnieæ konieczno¶æ wywo³ania innego pliku. Kategoria powinna mieæ mo¿liwo¶æ wp³ywania na wybór szablonów. Byæ mo¿e wybór pliku bêdzie wp³ywa³ na wybór szablonu. nadal nie rozumimem po co wielojezycznosc? czy nie mozna tego zrobic nastepujaco:
definiujemy kilka kategorii, kazda dla innego jezyka serwisu. do tych kategorii dolaczamy tylko to co mamy w danym jezyku. i odpada kombinowanie.
wg sposobu zaprezentowanego przez Ciebie, kazda kategoria musi miec wpisy dla kazdego jezyka. Czyli przy 10 jezykach dla kazdej kategorii trzeba dodac 10 wpisow w baze... troche duzo i jak dla mnie niepotrzebne...

Niezupe³nie, gdy¿ brak subkategorii w danym jêzyku spowoduje, ¿e nie bêdzie istnia³ do niej link, ewntualnie o d³ugo¶ci 0 ("zero") znaków. Metoda Twoja powoduje, ¿e w przypadku serwisów wielojêzycznych rozbudowuje Ci siê ca³a baza. W tym przypadku masz doczynienia z relacj± pomiêdzy bazami. Nazwa kategorii w danym jêzyku istnieje, gdy jest jej odpowiednik w tym jêzyku. S± natomiast przypadki, ¿e bêdzie wola poinformowania, ¿e materia³ jest dostêpny w innych jêzykach i je¶li nie ma go w jêzyku oczekiwanym przez u¿ytkownika, to otrzyma materia ³ w jêzyku domy¶lnym i listê dostêpnych wersji jêzykowych. To tak jak w przypadku PHP manualu.
roodee napisa³(a): co do szablonow to sie zgadzam - kazda kategoria musi miec swoj szablon, w wypadku NULL na przyklad, szablon domyslny
Bazuje to nieco na Twoim pomysle... Tylko nie do koñca rozumiem Twojej idei. Jako¶ nie wyobra¿am sobie, by mo¿na wszystko umie¶ciæ w bazie. Obrazki, czê¶æ zmiennych po prostu siê nie da. Mozna oczywi¶cie umie¶ciæ informacje o ¶cie¿ce do czê¶ci gifów, kolorach domy¶lnych, tytule, sloganie, etc.
roodee napisa³(a):syriusz napisa³(a):Tabela powinna zapewniæ:
maslo maslane

A ja tak d³ugo nad tym my¶la³em... W obu przypadkach mamy kategorie i subkategorie, ale w pierwszym jest informacja, ¿e kategorie w ni¿szym poziomie mog± mieæ wiele subkategorii, a w drugim ¿e subkategoria mo¿e miêæ na wy¿szym poziomie wiele kategorii.

Czyli w jednym przypadku relacja jeden do wielu, a w innym wiele do jednego.

Czy to jest mas³o ma¶lane?
syriusz napisa³(a):
Bazuje to nieco na Twoim pomysle... Tylko nie do koñca rozumiem Twojej idei. Jako¶ nie wyobra¿am sobie, by mo¿na wszystko umie¶ciæ w bazie. Obrazki, czê¶æ zmiennych po prostu siê nie da. Mozna oczywi¶cie umie¶ciæ informacje o ¶cie¿ce do czê¶ci gifów, kolorach domy¶lnych, tytule, sloganie, etc.

szczerze mowiac to caly czas sie nad tym zastanawiam.
a jako ze tabela templates nie jest z niczym powiazana to wszystko mozna zmienic i pod koniec projektu. na przyklad w templates.body zamiescic tylko link do formularza

nad tym sie zastanowie pod koniec pracy, bo to akurat najmniej wazne...

teraz mysle nad bardziej zaawansowanym rozwiazaniu menu. (menu glowne pojawia sie w jednym miejscu, menu dodatkowe w innym itd....) tylko nie wiem do konca jak sie za to zabrac...
Obawiam sie, ze watek raczej nie aktualny. Ale mam pytanie do baz danych, wiec moze ktos bedzie znal odpowiedz.

Pracuje aktualnie na MySQL 5 i pojawil mi sie pewien problem do rozwiazania. Mianowicie musze na czas trwania polaczenia utworzyc aliasy do tabelek znajdujacych sie w bazie danych. Dodatkowo aliasy musza byc widziane tylko dla tego jednego polaczenia. Ktos ma pomysl?
Ale w czym problem?

Jak by³o dotychczas? A jak musisz teraz to zapisywaæ?
Problem juz rozwiazany. Generalnie opisze dokladniej o co chodzi. Robilem wersje wielojezykowa strony i idea byla taka, by dla kazdej wersji jezykowej robic osoba tabelke (z powodow ktorych tutaj nie bede opisywal). Nie chcialem jednak zmieniac kodu zrodlowego strony, a szczegolnie edytowac zapytan.

Jak rozwiazalem... przy starcie strony tworzone sa tebele tymczasowe, nastepnie zapleniam je danymi z aktualnych tabel, a zapytania SELECT kieruje do tabel tymczasowych

W ten sposob wszystko chodzi pieknie, co ciekawe... uzyskalem przyspieszenie dzialania strony o jakies 10 - 30%
No proszê

Przyznam, ¿e rzecz brzmi tak zagadkowo, ¿e nadal budz± siê we mnie obawy. Wci±¿ siê bojê niespodzianek w MySQL5. Bo nie mam pewno¶ci czego siê spodziewaæ. Zreszta PHP5 to jeszcze inna ciekawostka. To ju¿ dla wielu programów kompletna katastrofa.

Nie wiem z czym wi±za³ siê Twój problem i konieczo¶æ aliasów...
I to mnie bardzo bardzo bardzo bardzo bardzo niepokoi...
Nie bylo mnie przez jakis czas

MySQL5 i PHP5 wnosza duzo nowych, ciekawych nowinek. Jednak jak dla mnie przejscie na nowsze wersje nie sprawily zadnego problemu, a wrecz obiektowosc w PHP5 bardzo dobrze przyjela sie w moich aplikacjach.

Problem ktory ja jednak napotkalem mozna bylo odniesc do PHP4 i MySQL4. Jego podstawa bylo moje lenistwo...

W gotowej stronie musialem wprowadzic obsluge wielu jezykow, ale w taki sposob by tabelki dla roznych jezykow byly rozdzielone (osobno dla PL, osobno dla RU itd.). Nie chcialem jednak bawic sie w zmiane we wszystkich mysql_query tabelki w zaleznosci od wersji jezykowej. Stad tez narodzil sie (po wielu ewolucjach) pomysl, by na poczatku wywolania skryptu stworzyc dla danego polaczenia tabele tymczasowa, skopiowac do niej dane z odpowiednika w wersji jezykowej i odnosic sie juz w zapytaniach do tabeli tymczasowej.

Juz troszeczke rozjasnilem temat?

ps. Co do PHP5 to krew mnie powoli zaczyna zalewac jak przygotowywane strony (za nie male pieniadze) mozna uruchomic tylko w PHP4 :/
Co do Twego problemu to znalazalem w necie takie rozwi±zania :


MNie czekan np. przeniesienie forum na MySQL5 i PHP5. No bo w koncu trzeba to zrobiæ i juz czujê jak mi co¶ w do³ku ¶ciska. Jak na razie robiê wszystko, by nie to odwlekaæ jak najdalej

Dzieki za kod, wynalazlem tez go jakis czas temu Przejscie na MySQL5 i PHP5 nie jest takie strasznie. Z MySQL5 nie ma zadnych problemow. W PHP5 czesc funkcji zachowuje sie troszke inaczej, ale sa to sporadyczne przypadki

Zawsze moge pomoc przy ewentualnych problemach

W PHP5 cenie sobie najbardziej jego obiektowosc - znacznie i zdecydowanie ulatwia ona prace
No i ja z kolejnym pytaniem Moze wiesz cokolwiek na temat kontroli typow w PHP? Chodzi o to, by ustawic, ze co pobierane z bazy danych jest intem, a co innego char'em?

Pozdrawiam
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • wyciskamy.pev.pl
  • img
    \