: ZALOZENIA - BAZA DANYCH

Pary_anime

dostalem wlasnie (zasluzona) z_bip_e
podaje co ma byc w bazie, dopisujcie co potrzebne, a na koncu ktos kto sie na tym zna tak jak trzeba zaprojektuje wszystko...

codeDivStart() articles:
article_id | subiect | body | destiny | ovner

categories:
category_id | ovner | title | body | date | active

artilce_relations:
article_id | category_id

category_templates:
category_id | template

do rozwiazania administracja uzytkownikami, ale ktos tu sie chwialil ze ma juz klase do tego
ew. moze da sie wygrzebac cos z phpbb bo podobno dobrze zrobione.


roodee napisa³(a):

do rozwiazania administracja uzytkownikami, ale ktos tu sie chwialil ze ma juz klase do tego

Nom, to by wygl±da³o tak:
codeDivStart()
database users:
id | login | encoded_password | level | ..wszystko inne...

gdzie id jest auto_increment albo sekwencja, login i zakodowane has³o to jasne, a level mo¿e byæ np. taki:

1. user
2. editor
3. admin
4. superuser
Struktura bazy danych - uklad tabel

Przyjrzalem sie dyskusji i ostatecznie zrebralem to wszystko do kupy. Ostatecznie powstalo cos takiego, czego jak mniemam nie ma co sie wstydzic. Oczywiscie trzeba to poprawic pod wzgledem ligwistycznym, dostosowac do standardu kodowanie (no wlasnie czemu to stoi - powinno sie juz zakonczyc, mialo byc jakies glosowanie nad zmianami), no i sprawdzic na ile realizowane beda zalozenia zwiazane z [url=""]systemem menu[/url] -> http://skorosze.pl/phpbb/viewtopic.php?t=33

Menu podstawowe
articles:
codeDivStart() article_id | owner_article_id | subject | body | destiny | owner | language | charset | description | keywords | sort_order | active
article_categories:
codeDivStart() category_id | parent_id | category_image | sort_order | date_aded | date_changed | active | language |
article_category_descriptions:
codeDivStart() category_id | category_description | category_language | category_name | language |
article_relations:
codeDivStart() article_id | category_id
Menu administratora
admin_categories:
codeDivStart() admin_category_id | admin_category_image | admin_category_id | admin_category_a_id | admin_category_b _id | admin_category_c_id | admin_category_d_id | admin_category_e_id | admin_category_f_id | admin_category_g_id | admin_category_h_id | admin_category_i_id | admin_category_j_id | admin_category_k_id | admin_category_l_id | sort_order | date_aded | date_changed
category_relations:
codeDivStart() category_id | admin_category_id
admin_category_descriptions:
codeDivStart() category_id | category_description | category_language | category_name
Liczniki
categories_counter:
codeDivStart() category_id | category_count
articles_counter:
codeDivStart() article_id | article_count
category_templates:
codeDivStart() category_id | template
owner_relations:
codeDivStart() article_id | category_owner_id | template_group_id
database users:
codeDivStart() id | login | encoded_password | level | ..wszystko inne...
Bardzo prosze o uwagi!
syriusz napisa³(a):
database users:
codeDivStart() id | login | encoded_password | level | ..wszystko inne...
Bardzo prosze o uwagi!

Mnie najbardziej interesuje powy¿sze, takie pytanie: level w bazie to prawa dostêpu (admin, editor, user)? Je¶li tak, to niech to bêdzie i potem operacje na bitach. W ten sposób mamy ³atwe sprawdzanie typu
codeDivStart()
if ($database_row['level'] & PERM_ADMIN)
{
   // zrob to, co tylko admin moze...
}



antyqjon napisa³(a):syriusz napisa³(a):
database users:
codeDivStart() id | login | encoded_password | level | ..wszystko inne...

Och ja tylko powtorzylem za Toba. Spojrz nieco wyzej. No wlasnie jak ty to widzisz, ze szczegolami.

A poza tym, czy jakies uwagi do reszty, bo pewnie musze nieco to wytlumaczyc.
syriusz napisa³(a):
Och ja tylko powtorzylem za Toba. Spojrz nieco wyzej. No wlasnie jak ty to widzisz, ze szczegolami.

Ja to widzê tak, ¿e do ka¿dego pliku systemu includujemy jaki¶ plik np. prepend.php, w którym z kolei includujemy modu³ bazy danych, klase szablonu, definicje sta³ych itp. A propos:
Definiujemy sobie stale, ktore potem beda porownywane z odpowiednim polem bazy danych ewentualnie zmienn± sesji.

codeDivStart()
define('PERM_USER', 1);
define('PERM_EDITOR', 1 | 2);
define('PERM_ADMIN', 1 | 2 | 4);
define('PERM_SUPERUSER', 1 | 2 | 4 | 8);

i w ten sposób ka¿dy ma dostêp do czynno¶ci przewidzianych dla uzytkownika ni¿szego rang± z wyj±tkiem zwyk³ego usera.
niech ktos wysle na forum najnowsza wersje bazy, to podrzuce to swojemu profesorowi na uczelnie - przejzy i ew. poprawi.
roodee napisa³(a):niech ktos wysle na forum najnowsza wersje bazy, to podrzuce to swojemu profesorowi na uczelnie - przejzy i ew. poprawi.

Minelo troche czasu. Ostatnio trwaly proby z systemem menu.
Przedstawiam ostatnie opracowanie bazy danych dla systemu zarzadzajacego katalogami.

System katalogow/menu

Struktura katalogow powinna zapewnic jak najwieksza elastycznosc, a w szzcegolnosci mozliwosci przyporzadkowania jednej kategorii glownej wielu subkategorii i kazdej subkategorii do wielu kategorii g³ównych, obsluge wielu jezykow, wielu serwisow. To ma i swoje zle strony. A w szczegolnosci niebezpieczenstwo zapetlenia siê kategorii oraz niebezpieczenstwo pozostawienia subkategorii niepodlaczonej.

Zapobiedz temu ma Panel Administracyjny, który wykonywac bêdzie kazdoeazowo przeliczenia i


Z koniecznosci system menu ogranicza siê do samych katalogow. Sposób podlaczenia artykulow bêdzie opracowany w nowym projekcie, który wykorzystywaæ bêdzie niniejszy system.

Podstawowa tabela to emedia_categories

codeDivStart() CREATE TABLE emedia_categories (
  category_id tinyint(8) NOT NULL auto_increment,
  owner_id tinyint(8) NOT NULL default '0',
  owners_id tinyint(8) NOT NULL default '0',
  sort_order tinyint(3) NOT NULL default '0',
  active float NOT NULL default '0',
  PRIMARY KEY  (category_id),
  KEY category_id (category_id)
)
gdzie:
category_id - numer identyfikacyjny kategorii
owner_id - numer identyfikacyjny wlasciciela serwisu
owners_id - numer identyfikacyjny kategorii dla danego wlasciciela serwisu
sort_order - numer porzadkowy kategorii
active - okreslenie, czy dana kategoria jest aktywna. Pozwala to np. na testowanie czesci serwisu w sposób niewidzialny dla odwiedzajacych.

W celu latwiejszego kontrolowania planowanej zawartosci poszczegolnych kategorii zdecydowano siê na tabele: emedia_category_descriptions

codeDivStart() CREATE TABLE emedia_article_descriptions (
  category_id tinyint(8) NOT NULL default '0',
  category_description varchar(150) NOT NULL default '',
  category_language_id char(3) NOT NULL default '',
  date_aded timestamp(14) NOT NULL,
  date_changed int(11) NOT NULL default '1029999999',
  PRIMARY KEY  (category_id)
)
gdzie:
category_id - numer identyfikacyjny kategorii
category_description - krotki opis kategorii w jezyku administratora
category_language_id – numer identyfikacyjny jezyka, w którym dokonano opisu
date_aded - data dodania kategorii, w sytuacjach mo¿na rozwazyc automatyzacji pojawienia siê danej kategorii. Normalnie do celow statystycznych
date_changed - data dokonania ostatniej zmiany.

Kolejna tabela ta bylaby zbedna w przypadku systemu jednojezykowego. Wiekszosc tych informacji znalazloby siê w tabeli pierwszej.

codeDivStart() CREATE TABLE emedia_category_names (
  id tinyint(8) NOT NULL auto_increment,
  category_id tinyint(8) NOT NULL default '0',
  category_image varchar(20) NOT NULL default 'x.gif',
  category_language_id char(3) NOT NULL default '0',
  category_name varchar(20) NOT NULL default '',
  file varchar(20) NOT NULL default 'index',
  extention varchar(5) NOT NULL default '.html',
  owner_id tinyint(8) NOT NULL default '0',
  PRIMARY KEY (id)
)
gdzie:
id - numer identyfikacyjny wpisu (liczba porzadkowa)
category_id - numer identyfikacyjny kategorii
category_image - nazwa zdjecia/obrazka dla danej kategorii. Mo¿e to byæ np. przycisk.
category_language_id - numer identyfikacyjny jezyka, w którym dokonano opisu
category_name - nazwa kategorii w danym jezyku
file - sciezka do pliku zarzadzajacego dana kategoria
extention - nazwa rozszerzenia pliku strony, standardowo przyjeto *.html
owner_id - numer identyfikacyjny wlasciciela serwisu

No i tabela opisujaca wzajemne relacje pomiedzy kategoriami

codeDivStart() CREATE TABLE emedia_category_relations (
  parent_id tinyint(8) NOT NULL default '0',
  owners_id tinyint(8) NOT NULL default '0',
  owner_id tinyint(8) NOT NULL default '0',
  PRIMARY KEY  (parent_id,owners_id)
)
gdzie:
parent_id - numer identyfikacyjny kategorii nadrzednej dla danego wlasciciela serwisu
owners_id - numer identyfikacyjny kategorii podrzednej dla danego wlasciciela serwisu
owner_id - numer identyfikacyjny wlasciciela serwisu

Czy sa jakies uwagi? Jakies propozycje zmian?
Z tego co pamietam powinna byc mozliwosc definiowania szablonu dla kazdej kategorii.

Gdzie i jak to wpisac?

Poza tym trzeba rozwazyc na wydzielenie tego tematu do odrebnego forum.
syriusz napisa³(a):
Poza tym trzeba rozwazyc na wydzielenie tego tematu do odrebnego forum.

Proponuje przeniesc to do oddzielnego forum. Bedzie to czytelniejsze.
Sl@o napisa³(a):
Minelo troche czasu. Ostatnio trwaly proby z systemem menu.
Przedstawiam ostatnie opracowanie bazy danych dla systemu zarzadzajacego katalogami.

a mi sie wydawalo ze robie CMS a nie system zarzadzajacy katalogami...

spisalem sie przed chwila na temat bledow w bazie, ale mi przegladarka padla i nie zlapalo posta. i drugi raz juz mi sie nie chce.
powiem tylko tyle, ze relacje tabel sa gotowe od miesiaca mniej wiecej, ale jak sie chcialem skontaktowac to nikt nie odpisywal...
Witaj! !
Milo Cie znow spotkac w cyberprzestrzeni

roodee napisa³(a):
a mi sie wydawalo ze robie CMS a nie system zarzadzajacy katalogami...

I tak jest, ale jako, ze inaczej podeszlismy do rzeczy pojawil sie pomysl, by pokazac to jako oddzielny pomysl. Zreszta na tym systemie chodzi teraz serwis Skorosze.pl (tylko wyjdz z ramki), a w okrojonej wersji jeszcze dwa inne.

roodee napisa³(a):
spisalem sie przed chwila na temat bledow w bazie, ale mi przegladarka padla i nie zlapalo posta. i drugi raz juz mi sie nie chce.
powiem tylko tyle, ze relacje tabel sa gotowe od miesiaca mniej wiecej, ale jak sie chcialem skontaktowac to nikt nie odpisywal...

Szkoda Niestety ja nic nie otrzymalem. Zadnego maila od Ciebie Wiem, ze sa tam bledy, ale to i tak wymaga przepisania.

Potem:
2. Poprawic baze dolaczania artykulow. Jest i funkcjonuje, jak sam sprawdzisz i chyba calkiem niezle, ale Twoje spojrzenie by temu sie przydalo. Wniosles sporo serca w ten projekt.

3. Stworzyc i poprawic baze uzytkownikow i grup uzytkownikow i ich podkategorii.

4. Stworzyc system autoryzacji z kontrola wejsc i sledzenia uzytkownikow i gosci (sesje, IPsesje, etc)

5. Stworzyc system administrowania dla katalogow

6. Stworzyc system administracji dla artykulow

7. Stworzyc system administracji dla uzytkownikow

Z tego cosmy jeszcze zrobili w miedzyczasie, to wlasciwie dokonalismy wyboru klas dla szablonow oraz obslugi bazy danych, ale poddamy to glosowaniu. Czym szybciej tym lepiej, bo mnie juz mierzi dyskusja na ten temat. A przyznam, ze mi sie klas pisac nie chce.

Jak widzisz z tego co wyzej kroja sie przynajmniej trzy oddzielne projekty. Reprezentuja troche inne podejscie niz widzialem gdziekolwiek. Nie wiem czy bedzie lepiej, ale na pewno bedzie inaczej. A kazdy projekt bedzie mogl byc wykorzystywany inaczej.

Hej, do milego
syriusz napisa³(a):Witaj! !
Milo Cie znow spotkac w cyberprzestrzeni

ja tu jestem caly czas, tylko na tym forum dlugo nic sie nie dzialo...

roodee napisa³(a):
a mi sie wydawalo ze robie CMS a nie system zarzadzajacy katalogami...

Cytat:
I tak jest, ale jako, ze inaczej podeszlismy do rzeczy pojawil sie pomysl, by pokazac to jako oddzielny pomysl. Zreszta na tym systemie chodzi teraz serwis Skorosze.pl (tylko wyjdz z ramki), a w okrojonej wersji jeszcze dwa inne.

na ktorym systemie?? katalogow? bo chyba nie tego CMS o ktory mi chodzilo...

Cytat:
roodee napisa³(a):
spisalem sie przed chwila na temat bledow w bazie, ale mi przegladarka padla i nie zlapalo posta. i drugi raz juz mi sie nie chce.
powiem tylko tyle, ze relacje tabel sa gotowe od miesiaca mniej wiecej, ale jak sie chcialem skontaktowac to nikt nie odpisywal...

Szkoda Niestety ja nic nie otrzymalem. Zadnego maila od Ciebie Wiem, ze sa tam bledy, ale to i tak wymaga przepisania.

mam projekt bazy, ktory dziala, jest szybki i dobrze zaprojektowany a jednoczesnie pozwala na dalsze modyfikacje - slowem: cudo )) (no ale jak dr od baz danych pomagal to takie efekty)
tylko ze ten system nie sprawdzi sie jesli zmienimy zalozenia projektu...

<b>moja propozycja jest taka, zeby zrobic to co zaczalem w takim formacie o jakim byla mowa (dodac do tego jeszcze obsluge skryptow uzytkownika oraz komentarze pod artykulami). tak czy tak ja to zrobie )

Cytat:
Potem:
2. Poprawic baze dolaczania artykulow. Jest i funkcjonuje, jak sam sprawdzisz i chyba calkiem niezle, ale Twoje spojrzenie by temu sie przydalo. Wniosles sporo serca w ten projekt....

ok reszty punktow komentowac w odniesieniu do tego co robilem nie ma sensu, bo przez to ze nie mialem kontaktu z Wami (albo Wy ze mna.), sam zaczalem cos robic co wedlug mnie jest dobre. Jak chcecie (wlasnie, pisze w liczbie mnogiej - kto tym sie jeszcze zajmuje?) to pokaze to co zrobilem w osobnym watku.
jest klasa do obslugi sql (bardzo prosta i funkcjonalna), jest klasa do szablonow, jeszcze prostrza, ale jako ze szablony beda przechowywane w bazie, cudow nie trzeba.

Cytat:
3. Stworzyc i poprawic baze uzytkownikow i grup uzytkownikow i ich podkategorii.

komentuje to tak jak ja to widze w odniesieniu do projektu:

IMO uzytkownicy nie musza miec katalogow - wystarczy pole w bazie (ownerID) jako klucz obcy do userID tabeli users, uprawnienia dawane innym uzytkownikom albo jako suma grup (id grupy jako potega 2) albo "w dol" (uprawnienie 5 daje prawa grupom 1,2,3,4,5) - do przedyskutowania. w kazdym badz razie mozna zrobic na relacji lub w tabeli articles(categories).

[/quote]
4. Stworzyc system autoryzacji z kontrola wejsc i sledzenia uzytkownikow i gosci (sesje, IPsesje, etc)
[quote]

sesje, sesje i jeszcze raz sesje. IP sesje przez obsluge w bazie (ale to juz inny problem).

Cytat:
5. Stworzyc system administrowania dla katalogow

moze mi ktos przedstawi zalozenia systemu katalogow?

Cytat:
6. Stworzyc system administracji dla artykulow

dodawanie, usuwanie, edycja, zmiana uprawnien, dopisywanie i usuwanie z kategorii, zmiana szablonu i miejsca wyswietlania. brak mozliwosci zmiany autora (oczywyste).

Cytat:
7. Stworzyc system administracji dla uzytkownikow

ze szczegolnym uwzglednieniem dostepu do czesci serwisu na haslo...

Cytat:
Z tego cosmy jeszcze zrobili w miedzyczasie, to wlasciwie dokonalismy wyboru klas dla szablonow oraz obslugi bazy danych, ale poddamy to glosowaniu. Czym szybciej tym lepiej, bo mnie juz mierzi dyskusja na ten temat. A przyznam, ze mi sie klas pisac nie chce.

to juz omowilem wyzej

Cytat:
Jak widzisz z tego co wyzej kroja sie przynajmniej trzy oddzielne projekty. Reprezentuja troche inne podejscie niz widzialem gdziekolwiek. Nie wiem czy bedzie lepiej, ale na pewno bedzie inaczej. A kazdy projekt bedzie mogl byc wykorzystywany inaczej.

dokladnie, a teraz to "ja tu widze niezly burdel" ))

pozdr.

P.S. a kodowanie siadlo bo ja pisze w UTF-8
Witaj roodee,

roodee napisa³(a):syriusz napisa³(a):Zreszta na tym systemie chodzi teraz serwis Skorosze.pl (tylko wyjdz z ramki), a w okrojonej wersji jeszcze dwa inne.

na ktorym systemie?? katalogow? bo chyba nie tego CMS o ktory mi chodzilo...

Katalogi + artykuly. Tyle zrobione w tej chwili. Ale faktycznie to nie projekt, o ktory Ci chodzilo, bo ten tylko Ty jestes w stanie poprowadzic prawidlowo.

roodee napisa³(a):
mam projekt bazy, ktory dziala, jest szybki i dobrze zaprojektowany a jednoczesnie pozwala na dalsze modyfikacje - slowem: cudo )) (no ale jak dr od baz danych pomagal to takie efekty)
tylko ze ten system nie sprawdzi sie jesli zmienimy zalozenia projektu...

<b>moja propozycja jest taka, zeby zrobic to co zaczalem w takim formacie o jakim byla mowa (dodac do tego jeszcze obsluge skryptow uzytkownika oraz komentarze pod artykulami). tak czy tak ja to zrobie )

Mysle, ze chetnie poznalbym propozycje bazy danych. Tym bardziej, ze dr nad tym sleczyl, a to juz cos.

Jest i druga refleksja... Niepotrzebnie chcialem laczyc dwa niezalezne od siebie projekty. Nie zawsze wszystko da sie pozenic.

roodee napisa³(a):
ok reszty punktow komentowac w odniesieniu do tego co robilem nie ma sensu, bo przez to ze nie mialem kontaktu z Wami (albo Wy ze mna.), sam zaczalem cos robic co wedlug mnie jest dobre. Jak chcecie (wlasnie, pisze w liczbie mnogiej - kto tym sie jeszcze zajmuje?) to pokaze to co zrobilem w osobnym watku.

Milo by bylo zobaczyc.

roodee napisa³(a):
jest klasa do obslugi sql (bardzo prosta i funkcjonalna), jest klasa do szablonow, jeszcze prostrza, ale jako ze szablony beda przechowywane w bazie, cudow nie trzeba.

U nas nie ma fachowcow od klas, dlatego przygladalismy sie tym co jest, a za istniejacymi rozwiazaniami przewaza mozliwosc obslugi wielu silnikow SQL.

roodee napisa³(a):
komentuje to tak jak ja to widze w odniesieniu do projektu:

IMO uzytkownicy nie musza miec katalogow - wystarczy pole w bazie (ownerID) jako klucz obcy do userID tabeli users, uprawnienia dawane innym uzytkownikom albo jako suma grup (id grupy jako potega 2) albo "w dol" (uprawnienie 5 daje prawa grupom 1,2,3,4,5) - do przedyskutowania. w kazdym badz razie mozna zrobic na relacji lub w tabeli articles(categories).

? Bez katalogow? To cos nowego, ale potrzeba wiecej info, zeby zrozumiec idee. Wyglada ciekawie.

roodee napisa³(a):
moze mi ktos przedstawi zalozenia systemu katalogow?

Strukture masz w innym watku. Glowne zalozenia: Pelna elastycznosc, tzn. kazdy katalog moze byc podkatalogiem innego, tak dlugo jak dlugo sie to nie zapetla, t.zn. kazdy katalog moze byc podkatalogiem dla wielu katalogow i katalogiem nadrzednym dla wielu podkatalogow. Baza musi obsluzyc wielu uzytkownikow, ktorzy maja wlasna numeracje ID i wielu jezykow, ktore moga byc wymienione w locie.

To tak pokrotce. O szczegoly pytaj.

syriusz napisa³(a):
Jak widzisz z tego co wyzej kroja sie przynajmniej trzy oddzielne projekty. Reprezentuja troche inne podejscie niz widzialem gdziekolwiek. Nie wiem czy bedzie lepiej, ale na pewno bedzie inaczej. A kazdy projekt bedzie mogl byc wykorzystywany inaczej.

roodee napisa³(a):
dokladnie, a teraz to "ja tu widze niezly burdel" ))

Dlatego wciaz sie zastanawiam, czy dla dobra sprawy nie lepiej byloby wszystko co nie jest zwiazane z Twoim projektem wyodrebnic do innego forum. Powinienes miec wieksza swobode w rozwijaniu tegoz, a ja zamnalbym oczy na to co tu sie dzieje.

roodee napisa³(a):
P.S. a kodowanie siadlo bo ja pisze w UTF-8

Bardzo ladny system kodowania znakow

Pzdr
Sl@o
tak przegladam, czytam i widze ze nie obejdziemy sie bez jednej rzeczy:
<b>rozdzielenia projektow</b>

no bo tak:
ja mam na mysli cos innego, Sl@o mowi o czym innym, czego pewnie nie da sie do konca pogodzic...

mzoe ytowrzymy oddzielne ofra dla projektow, tam przedstawimy zalozenia i realizacje, odpali sie u mnie cvs'a albo cus
tylko ze mam dostep tylko przez https (poblokowali port 80).

zobacz https://roodee.one.pl/ewa - tam jest to co robie z projektem

potem cos napisze jak wroce do domu.
roodee napisa³(a):tak przegladam, czytam i widze ze nie obejdziemy sie bez jednej rzeczy:
<b>rozdzielenia projektow</b>

no bo tak:
ja mam na mysli cos innego, Sl@o mowi o czym innym, czego pewnie nie da sie do konca pogodzic...

mzoe ytowrzymy oddzielne ofra dla projektow, tam przedstawimy zalozenia i realizacje, odpali sie u mnie cvs'a albo cus
tylko ze mam dostep tylko przez https (poblokowali port 80).

zobacz https://roodee.one.pl/ewa - tam jest to co robie z projektem

potem cos napisze jak wroce do domu.

Strasznie wolno to chodzi. Ladne, ale wiecej informacji by sie przydalo.
Anonymous napisa³(a):
Strasznie wolno to chodzi. Ladne, ale wiecej informacji by sie przydalo.

wolno bo stoi na modemie kablowym (chyba 256 kbit wyjscie)....

czekam co powie Sl@o, bo chce utworzyc nowe forum tylko odnosnie tego projektu, bo tutaj balagan jest...
roodee napisa³(a):Anonymous napisa³(a):
Strasznie wolno to chodzi. Ladne, ale wiecej informacji by sie przydalo.

wolno bo stoi na modemie kablowym (chyba 256 kbit wyjscie)....

czekam co powie Sl@o, bo chce utworzyc nowe forum tylko odnosnie tego projektu, bo tutaj balagan jest...

Sl@o powiedzal OK
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • wyciskamy.pev.pl
  • img
    \