• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Forum - korzystanie z bazy danych - pomoc

Object Storage Arubacloud
0 głosów
375 wizyt
pytanie zadane 18 stycznia 2016 w SQL, bazy danych przez kkamczak Nowicjusz (140 p.)
Witam, zawsze pasjonowało mnie programowanie webowe, a po obejrzeniu całego kanału Miroslaw Zelent postanowiłem spróbować ( na razie dla siebie ) napisać stronę coś w rodzaju forum. I odrazu w głowie mam jeden problem - jak ma wyglądać struktura korzystania z bazy danych. Zwracam się z prośbą o udzielenie mi podpowiedzi jak to wykonać ( chodzi mi o to w jakich tabelach umieszczać kategorie, nazwę tematu, odpowiedzi, oceny, treści tematu itd.itp.), albo odesłanie do jakiejś strony gdzie jest już ten problem opisany. Zaznaczam że nie chodzi mi o żadne cuda na kiju tylko najprostsze w swojej prostocie małe forum. Dziękuje i pozdrawiam.

2 odpowiedzi

+1 głos
odpowiedź 18 stycznia 2016 przez event15 Szeryf (93,790 p.)

Skoro obejrzałeś filmy od Pana Mirosława, to poratuję Cię ważnymi informacjami, zanim uznasz, że możesz robić cokolwiek w PHP. 

  • Każda zmienna, którą udostępniasz ($_POST $_GET itp) mają być szczególnie chronione. Masz sprawdzać każdy najmniejszy szczegół. Jeżeli w polu formularza oczekujesz tylko tekstu to filtruj ten tekst tak aby Twoja aplikacja nie została złamana. Dlatego odsyłam Cię do kursu starego jak świat, ale ważnego: http://www.uw-team.org/videoarty_security.html masz to przerobić całe.
  • Musisz wiedzieć, że nie korzystamy z funkcji mysql_*. Zamiast tego powinieneś łączyć się za pomocą PDO i prepared statements, ewentualnie MySQLi (improved). Również stosować filtrowanie zmiennych oraz prepared statements najlepiej. 
  • Testuj swoją aplikację. Najlepiej gdybyś poznał framework do robienia tego: PHPUnit PHPSpec Behat, Codeception. Chodzi o to, by to, co piszesz było sprawdzone przez Ciebie. 
  • Każde zapytanie wysłane przez użytkownika do bazy danych jest dla Ciebie zagrożeniem.
  • stosuj bloki try i catch. Dowiedz się o nich trochę - nie jest to dużo wiedzy a pomoże Ci zapanować nad błędami
  • Nigdy, przenigdy nie stosuj operatora wyciszania błędów! Czyli słynnej małpy. Nie pytaj dlaczego - to jest po prostu okropna praktyka i nikt nie powinien o tej małpie wiedzieć w kontekście łączenia z bazami danych.
komentarz 18 stycznia 2016 przez kkamczak Nowicjusz (140 p.)
Dzięki za te wskazówki, od jutra biorę się z ten kurs :)
0 głosów
odpowiedź 18 stycznia 2016 przez 0rb_12 Bywalec (2,440 p.)
Ja Robiłem Tak:

1. Tabela dla użytkowników - id, haslo, mail + standardowe informacje

2. Tabela na wiadomości - tutaj id, kategoria, id z tabeli nr1, data, temat, treść, id tabeli nr2 jeżeli to odpowiedz a nie nowy wątek

Myśle ze jest to maksymalnie okrojone, ale spełnia funkcje forum ;]]]
komentarz 18 stycznia 2016 przez 0rb_12 Bywalec (2,440 p.)
PS. Nie mówię, ze to najlepsze rozwiązanie, mówię, ze najlepsze na pierwsze forum ( IMO )
komentarz 18 stycznia 2016 przez event15 Szeryf (93,790 p.)
Spoko, są użytkownicy, są wiadomości, ale gdzie tworzenie forum?
komentarz 18 stycznia 2016 przez 0rb_12 Bywalec (2,440 p.)
Odpowiedz dotyczy max prostej ( wg mnie ) struktury danych pod forum, takiego forum na którym ktoś poćwiczy podstawy. Oczywiście można stworzyć jeszcze wiele tabel odpowiedzialnych za "tworzenie forum" - lecz resztę można uzyskać innymi technologiami. Jeżeli chodzi o strukturę Bazy Danych - taka wystarczy.
komentarz 18 stycznia 2016 przez event15 Szeryf (93,790 p.)
To co napisałeś to prędzej coś jak wiadomości internetowe niż forum
komentarz 18 stycznia 2016 przez kkamczak Nowicjusz (140 p.)
Mniej więcej o to mi właśnie chodziło, tylko jeszcze pytanko: Jeżeli chciałbym dodać na przykład system polubień to w jakiej tabeli zapisywać że użytkownik to lubi ( w sensie jestem zalogowany i widzę, że ten post/temat polubiłem).

edit: i jeśli można spytać o co chodzi z tym "tworzenie forum" ? :)
komentarz 18 stycznia 2016 przez 0rb_12 Bywalec (2,440 p.)
A co różni jedno od drugiego, poza liczbą redaktorów?
komentarz 18 stycznia 2016 przez 0rb_12 Bywalec (2,440 p.)
O ile nie chcesz dać możliwości oddania tysiąca lajków na jeden post przez jednego użytkownika ( tak wiem nie chcesz ) Tworzysz tabele nr3.

3. Tabela Lajków - id z tabeli nr 2 , id z tabeli nr 1  - Najuboższa wersja tabeli zapobiegająca oddawani "lewych" lajków
komentarz 18 stycznia 2016 przez 0rb_12 Bywalec (2,440 p.)
Stworzenie tak prostego Forum bardzo Ci pomoże, jesteś wstanie to zrobić, uwierzyć w swoje umiejętności. Dopiero potem możesz sie pobawić w dodanie awatarów, wstawianie zdjęć, wklejanie kodów w odpowiedniej kolorystyce do składni itd. idt

Ale Myślę ze lepiej wykonać najpierw to niż zrobić listę bajerów, zobaczyć że udało się pierwszy wykonać po 2 tygodniach i obliczyć ze w takim tempie skończę za 2,5 roku
komentarz 18 stycznia 2016 przez kkamczak Nowicjusz (140 p.)
Właśnie postanowiłem spróbować wykonać projekt takiego prostego forum aby poznać swoje możliwości, jednak najpierw jeszcze przestudiuję to co napisał event15. Chciałem jeszcze zadać pytanie, czy przy takich projektach z góry ustala się pojemność tablic (ilość wierszy) ?.
komentarz 19 stycznia 2016 przez 0rb_12 Bywalec (2,440 p.)
To co napisał event15, to oczywiście bardzo ważne sprawy, w sumie dał Ci najważniejsze porady dotyczące nie samej struktury ale połączenia czy filtrowania i zabezpieczenia Bazy Danych. Ja dodałbym jeszcze jedną istotną sprawe, od samego początku zabezpieczaj hasła przechowywane w Bazie, nie twórz nawet i pierwszego forum, pomijając ten element.

Co do ustalenia wielkości takiej Bazy danych to:

Liczby wierszy z góry nie ustalasz, ustalasz wielkość każdego rekordu.

Podobne pytania

0 głosów
2 odpowiedzi 576 wizyt
0 głosów
1 odpowiedź 252 wizyt
pytanie zadane 22 czerwca 2017 w SQL, bazy danych przez kabzonek Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 281 wizyt
pytanie zadane 6 kwietnia 2016 w SQL, bazy danych przez artix132 Użytkownik (870 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...