нужна помощь с отношениями таблицы базы данных! - PullRequest
1 голос
/ 07 мая 2011

Я пытаюсь создать сайт, который немного похож на этот сайт. В основном я установил четыре таблицы:

  1. Пользователи
  2. Тема
  3. Комментарии
  4. Темы

Способ установления отношений:

Пользователь получил много комментариев.
У пользователя много тем.
У каждой темы есть своя собственная тема, тема, подтема (таблица тем, которую я использую в основном как теги).

Способ работы базы данных:
я хочу использовать команду sql INSERT INTO() в моем коде, на разных этапах .. но, как правило, вот описание:
Когда пользователь регистрирует его: ID установлен, имя, пароль, получено электронное письмо. (вставить в таблицу пользователей)
Когда он отправляет вопрос, ThreadID установлен, заголовок вопроса и параграф вставляются в таблицу потоков (Таблица потоков).
Все темы генерируются на странице по дате (я поместил специальное поле в таблицу тем).
Таблица комментариев действует так, как работает поток, но также имеет поле ответа на комментарий.

Вот макет:

Пользователи

UserID (primarty key: Linked to comments and threads).
Login
Password
Email

Тема

ThreadID (primary key: linked to Comments Table)
UserID
TopicsID
Comments
Date
ThreadTitle
ThreadParagraph(question details)

Комментарии

CommentsID (primary key: didnt link it to any other field in any other table)
UsersID
ThreadsID
Date
Comments
CommentResponse

Темы

TopicsID (primary key: linked to Threads table)
Theme
Topic
Subtopic

Идея дизайна:
У каждого пользователя есть много комментариев и тем, которые он может изменять.
Темы используются как теги (позже я свяжу их с 3 выпадающими списками).
Каждая тема имеет много комментариев.
Каждый комментарий получил ответный комментарий / с.

Я новичок в создании базы данных. Я прочитал немного о том, как строить отношения таблиц и базы данных. но прежде чем развернуть все, мне нужен ваш совет по улучшениям, которые я мог бы сделать? и общее мнение о дизайне !!!

пс. я использую c #, asp.net, visual studio 2010

1 Ответ

0 голосов
/ 12 июня 2011

По большей части я думаю, что ваш дизайн в порядке.Тем не менее, я бы предложил нормализовать таблицу «Темы», либо создав отдельные таблицы для тем, тем и подтем, либо создав таблицу со ссылками:1007 * Это позволит более эффективно использовать хранилище (вы больше не дублируете названия тем и тем в ваших данных) и даст вам больше гибкости (вы можете иметь бесконечные уровни иерархических тегов с этим дизайном).

Кроме того, нет необходимости добавлять префиксы к именам столбцов, например, Threads.ThreadTitle.В этом случае я бы рекомендовал переименовать Threads.ThreadTitle в Threads.Title и Threads.ThreadParagraph в Threads.Paragraph.

...