Database
 sql >> база данни >  >> RDS >> Database

Моделиране на основна структура от данни за управление на потребители, нишки и публикации

Онлайн дискусионен форум е сайт, където хора може да провежда разговори под формата на публикувани съобщения . Дискусионните форуми позволяват провеждането на разговори, когато хората не са онлайн, а съобщенията може да бъдат временно архивирани. Освен това, в зависимост от настройката на форума, може да се наложи съобщение да бъде одобрено от модератор, преди да стане видимо за други потребители. Форумите имат специфичен набор от термини, например един разговор обикновено се нарича „нишка“. На теми могат да отговарят толкова хора, колкото искат. Повечето форуми изискват от потребителите да се регистрират и впоследствие да влязат, за да публикуват съобщения. Въпреки това, в повечето форуми потребителите не трябва да влизат, за да четат съществуващи съобщения.

Това са общи изисквания за форум на уебсайтове , така че нека работим, за да създадем модел на база данни, като започнем с основна настройка на форума, която можем да разширим по-късно.

Обекти

Както бе споменато по-горе, хората провеждат разговори под формата на публикувани съобщения, които са групирани в разговори. Така че базата данни трябва да поддържа информация за хора или потребители , разговори или нишки и съобщения или публикации .

За онлайн форума ще трябва да бъдат създадени потребители – може да е необходимо да се позволи на потребителите да редактират своите данни, след като са създадени, но вероятно няма нужда да се разрешава изтриване на потребители. Потребителите ще създават разговори или теми, обикновено като публикуват първо съобщение във форума, вместо изрично да създават разговор, но може да е необходимо да се поддържат и двете възможности. Темите ще съдържат публикации, създадени от потребители.

Функционалност

Публикуването на съобщения е основната функционалност на онлайн форума . Трябва ли потребителите да могат да редактират съобщения, след като са били публикувани? Трябва ли потребителите да могат да изтриват съобщения след публикуване? Отговорът и на двете вероятно е да.

Взаимоотношения

Публикациите са свързани с нишки и публикациите се създават от потребители, така че ще има дефинирана връзка между потребители и публикации. Нишките се създават от потребители, така че трябва да съхранявате връзка там (например, ако потребител е забранен от форума, може да искате да премахнете всички теми и публикации, създадени от този потребител).

Сега, когато познавате обектите и отношения , сте готови да изградите модел на базата данни и това трябва да отнеме само минути. Тук инструментите са полезни.

Модел на базата данни

Нека да разгледаме Vertabelo, за да продължим онлайн дискусионния форум.

Създайте модел за онлайн форума и започнете да добавяте обектите представляващи потребители, нишки и публикации. Vertabelo ще ви напомни, че трябва да дефинирате първични ключове за всяка таблица; Препоръчвам да използвате id колони, тъй като това ще ви даде повече потенциална гъвкавост (и няма да ви обвърже с името на потребителя като основен ключ или други клопки). След това добавете отношенията които вече описахме по-рано. Добавих парола (в хеширана форма), за да може потребителят да контролира влизането на потребителите.

Сега ще получите нещо, което изглежда приблизително така:




Ще видите, че има времеви отпечатъци с датата/часа на създаване на всеки ред, така че тази информация да може да се показва във форума („Потребител от 2 февруари 2014 г.“, „Дата на публикуване: 24 декември 2014 г.“ и т.н. ).

Ако ще имате модериран онлайн дискусионен форум, в който съобщенията трябва да бъдат одобрени от модератор, преди да станат видими за други потребители, тогава трябва да добавите елемент на състоянието към нишки и публикации, така че приложението да може да реши дали нишките и свързаните публикации са били прегледани и одобрени. Състоянието също така ще позволи на други потребители да маркират нишки и публикации като спам или неподходящи.

Надявам се, че вече можете да започнете да мислите за подобрения. Например, ако имате нужда от официални подробности за потребителя, вместо едно поле „име“, може да искате неговото име, фамилия и потребителско име или псевдоним. И една публикация може да има тема в допълнение към съдържанието, но мисля, че темата на публикацията е свързана обратно към темата, така че може да не е необходимо.

  Следваща част »

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Попълване на Teradata с реалистични тестови данни De Novo

  2. Foreach или For – това е въпросът

  3. Настройване на производителността на коляното:Неправилно използване на временни таблици

  4. Общи инструкции за изграждане и внедряване на сървър за бази данни

  5. Система за управление на големи бази данни:проектиране и архитект