![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 286 Pomógł: 29 Dołączył: 5.04.2007 Skąd: Rymanów Zdrój/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Witam. Otóż mam problem przy pisaniu forum. Jak wiadomo forum przeważnie zawiera działy, a w nich tematy. I tutaj zaczyna się moje pierwsze pytanie:
Które rozwiązanie jest bardziej optymalne: 1. Przy zakładaniu tematu: tytuł i treść tematu całość zapisujemy do tabeli z tematami, czyli np: id=1 date=now() title=tytul tematu content=tresc tematu autor=autor tematu board=dzial tematu a pod tematem wyświetlane posty (odpowiedzi) Ogólnie rzecz biorąc: treść tematu nie jest postem. 2. Przy zakładaniu tematu tytuł,id,board zostaje zapisana do tabeli z tematami, a autor,data,id,content idzie do tabeli z postami? Które z nich? Z pierwszym mam problem, bo przy zapytaniu do bazy nie moge dac ORDER BY ThreadDate and PostDate naraz. Czyli albo tematy będą wyświetlane wg Dat ostatniego posta, albo wg daty założenia tematu. Niby wszystko dobrze, tylko że jak w danym temacie nie ma posta to temat jest na szarym koncu, mimo ze zostanie on zalozony jako ostatni. Jak to rozwiązać? Z drugim też jest problem, bo musze tworzyć dwa zapytania. pierwsze do tabeli threads, drugie do posts. W czym problem? Ano moje tabele wyglądałyby tak:
Pole PostTopic miałoby wartość Yes jeśli byłby to post który byłby "treścią" tematu. Tylko przy zapisywaniu do bazy danych byłby problem z polem PostThread ponieważ w 1 zapytaniu do tabeli threads automatycznie dodawałby id (kolejne), a przy zapisywaniu do bazy potrzebne było by mi to id w tabeli post, zeby post miał jak się odwołać do tematu, żeby był z nim powiązany. Co radzicie w takiej sytuacji? -------------------- Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh Darti piotrekkr Bez nich wiele bym nie zrobił. Dzięki im za to! |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Rozwiązanie 2.
Posts: - post_id - topic_id - author_id - content - date Topics: - topic_id - board_id - first_post_id - last_post_id - posts_count - title Pobieranie postów z tanego tematu: 1 zapytanie z JOIN-em Dodawanie nowego postu: INSERT na tabeli posts, UPDATE na topics Zakładanie nowego tematu: INSERT na tabeli topics, mysql_insert_id" title="Zobacz w manualu PHP" target="_manual, INSERT na tabeli posts -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 286 Pomógł: 29 Dołączył: 5.04.2007 Skąd: Rymanów Zdrój/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
a jak mogłoby wyglądać zapytanie pobierające rekordy? bo mam z tym problem :/
edit: juz nie trzeba ![]() teraz mam problem z przerobieniem tego zapytania:
tak aby móc wyciągnąć date ostatniego posta, a nie pierwszego, jak jest teraz Ten post edytował bemol 14.09.2008, 09:24:53 -------------------- Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh Darti piotrekkr Bez nich wiele bym nie zrobił. Dzięki im za to! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 00:55 |