Użyj Laravela. Logowanie i rejestracje masz gotowa w pakiecie.
Nie musisz od razu robić wszystkich funkcjonalności. Zacznij od niezbędnego minimum. Jaka jest główna funkcjonalność Twojej aplikacji? Co by ona robiła gdybys miał ją opisać jednym zdaniem?
Uzytkownicy musza mieć możliwość przeczytania artykułów
Na razie nie przejmujemy się komentarzami, ocenami itd. Teraz jeżeli już mamy minimalna funkcjonalność zadajemy sobie pytanie jak do niej dojść małymi kroczkami i co nam będzie potrzebne.
Artykuły musimy gdzieś trzymać, wiec potrzebujemy tabelkę z artykułami. Okej, ale co w tej tabelce? Każdy szanujący się artykuł musi mieć:
Na razie nie przejmujemy się nawet użytkownikami. Przecież w skrajnie śmiesznej sytuacji użytkownicy Twojej aplikacji mogą Ci wysyłać mailem artykuły, a Ty je będziesz wrzucał do bazy. Mało to wygodne, ale na ten moment obejdzie się bez użytkowników.
Podkreślam interesuje nas minimum konieczne, żeby Twoja strona miała sens.
Tworzymy wiec odpowiednia tabelkę. Wrzucamy jakieś artykuły do tej tabelki. Wyciągamy je i wypluwamy na ekran prezentując je w jakiejś tabelce html czy bóg wie czym.
Super! Co dalej? Fajnie by było żeby jednak użytkownik mógł sobie dodać ten artykuł, a żeby dodać artykuł, to musi się zalogować. W związku z tym w pierwszej kolejności musimy zrobić logowanie. Tutaj akurat sprawa jest prosta, bo laravel ma wbudowane to wszystko, wiec nie musisz się martwić. Przeczytaj dokumentacje.
Okej użytkownik może przeglądać dodane artykuły oraz może się już zalogować. To już całkiem sporo. Skoro musi mieć możliwość dodania artykułu, to tworzymy odpowiedni formularz, ale najpierw jak powiązać artykuł z użytkownikiem? Do tego użyjemy klucza obcego. Dodajemy do tabelki z artykułami user_id i oprogramowujemy dodawanie artykułu.
Na ten moment mamy:
- możliwość przeglądania artykułów
- logowania się (i rejestracji)
- dodawania artykułu
Co dalej? To zależy od Ciebie, ale mechanizm jest taki sam. Jeżeli wybierzesz, ze dobrze by bylo, aby użytkownicy mogli „łapkować” artykułu to zadajesz sobie pytanie: a gdzie ja będę trzymał te lajki? Potrzebuje tabelkę likes. Jak ja połączyć z artykułami i użytkownikami? Pewnie musi tam być klucz obcy do jednego i drugiego.
Później jak Ci wygodniej - możesz najpierw dodać sztuczne lajki do tabelki i oprogramować wyświetlanie, albo najpierw zacząć od dodania możliwości kliknięcia like, który się doda do bazy. Moim zdaniem łatwiej jest oprogramować wyświetlanie rzeczy sztucznie dodanych, wtedy nie będziesz musiał grzebać w bazie, żeby sprawdzi czy się udało - tak jak zrobiliśmy z artykułami.
Małymi kroczkami, przyrostowo rozwijaj swoją aplikacje. Jak spróbujesz zrobić wszystko na raz to się pogubisz. Zawsze sobie zadaj pytanie jakie jest minimum konieczne, żeby to działało, a później buduj dookoła tego.
How do you eat an elephant? One bite at a time.
PS. Możesz nawet najpierw zwrócić do widoku tablice z artykułami, których nawet nie ma w bazie. Ogarniesz najpierw widok, jak już widok będzie działał, to wtedy podmieniasz sztuczna tablice z artykułami w bazie itd. itd.
relacyjna
w określeniurelacyjna baza danych
nie odnosi się do relacji między tabelami.