Biorąc pod uwagę analizę wymagań, zidentyfikowaliśmy potrzebę posiadania w naszej aplikacji
czterech tabel bazodanowych, przechowujących informacje o: użytkowniku User
, wiadomościach Post
,
komentarzach Comment
oraz otagowaniu Tag
:
User
przechowuje informacje o użytkownikach, włączając w to ich nazwy oraz hasła.Post
przechowuje informacje o wiadomościach. Składa się ona przede wszystkim z następujących kolumn:
title
(tytuł): wymagany, tytuł wiadomości;content
(zawartość): wymagana, zawartość treści wiadomości, zapisana w formacie Markdown;status
(status): wymagany, status wiadomości, który może przyjmować następujące wartości:
draft
(wersja robocza): wiadomość znajduje się w wersji roboczej i nie jest widoczna publicznie;published
(opublikowana): wiadomość jest upubliczniona;archived
(zarchiwizowana): wiadomość jest przedawniona i nie jest widoczna publicznie. tags
(otagowanie): opcjonalne, lista rozdzielonych przecinkami słów, kategoryzujących wiadomość.Tabela Comment
przechowuje informacje o komentarzach do wiadomości. Każdy komentarz jest powiązany z postem i przede wszystkim zawiera następujące kolumny:
name
(nazwa): wymagana, nazwa autora komentarza;email
(email): wymagany, e-mail autora komentarza;website
(strona WWW): opcjonalna, strona WWW autora komentarza;content
(zawartość): wymagana, zawartość komentarza zapisanego przy pomocy formatu Markdown.
status
(status): wymagany, status komentarza determinujący czy komentarz został zatwierdzony (wartość 1) lub nie (wartość 0).
Tag
(otagowanie) zawiera informację o tagach wiadomości. Każda wiadomość może posiadać wiele tagów, ale
także każdy tag może być przypisany do wielu wiadomości. Tabela Tag
jest używana przede wszystkim przez portlet chmurki tagów,
który potrzebuje obliczyć jak często używany jest każdy z tagów.Następujący diagram (ER) relacji encji (ang. entity-relation diagram), pokazuje strukturę oraz
relacje dla wyżej opisanych tabel. Zauważ, że relacja pomiędzy tabelami Post
oraz Tag
to wiele-do-wielu. Tabela PostTag
służy do rozbicia tej relacji na dwie relacje jeden-do-wielu.
Diagram relacji encji dla bazy danych blogu
Wszystkie wyrażenia SQL, odpowiadające powyższemu diagramowi ER, można znaleźć w demonstracyjnym blogu.
Dla naszej instalacji Yii, można je odnaleźć w pliku /wwwroot/yii/demos/blog/protected/data/schema.sqlite.sql
.
Proces tworzenia naszej aplikacji podzieliliśmy na następujące kamienie milowe.
Signup or Login in order to comment.