Таблицы в БД для комментариев
Проектирую сейчас структуру сайта, который хочу реализовать на ASP.NET MVC. Сейчас изучаю задачу комментирования всего что будет на сайте - статьи, фотографии, файлы и т.п. информация о которых находится в разных таблицах (пока). Пришел к выводу что есть два пути решения данной задачи:
1. Для каждого типа контента создавать свою таблицу с комментариями. 2. Сделать одну таблицу с комментариями, но каким-то хитрым образом переделать структуру таблиц контента. Отсюда вопрос: Есть ли у кого идеи, каким путем идти и почему? Для работы с базой данных буду использовать Entity Data Model (EDM Framework) так что все связи в базе данных будут выполнены отношениями, а не программно. |
Ответ: Таблицы в БД для комментариев
+---------------+-------------+---
| CommentID | ContentID | ... +---------------+-------------+--- В чем проблема-то? Создается одна таблица для ТИПОВ контента, другая для КОНТЕНТА, где у каждой строки будет "привязка" в типу через его ID, третяя таблица - для КОМЕНТАРИЕВ. Привязка в ней будет осуществлятся к ID контента (не типа). |
Ответ: Таблицы в БД для комментариев
Это не решение, не могу представить себе таблицу контента, описывающую все сущности
Цитата:
PS: Я вот сейчас задумался о том, как можно использовать наследование в объектной модели базы данных... может с ней что-то получится... |
Ответ: Таблицы в БД для комментариев
Мммм. Чего-то я не понял. Вроде, как оно так всегда делается ;)
Так, как информация, которая дублируется - просто обязана быть в другой таблице. |
Ответ: Таблицы в БД для комментариев
Вложений: 1
Наследование решило проблему :) буду дальше проектировать архитектуру базы данных для сайта.
Вот пока какая модель данных получается (таблицы Article и File унаследованы от таблицы Content): |
Ответ: Таблицы в БД для комментариев
Что за инструмент для создания UML?
|
Ответ: Таблицы в БД для комментариев
Это инструмент визуального создания объектной модели данных Entity Framework и встроен в Visual Studio 2008 SP1. Может генерировать модель непосредственно из базы данных но такие вещи как наследование необходимо делать вручную. Результатом работы является сгенерированный код, который можно использовать уже в программе для доступа к базе данных без написания SQL запросов. Сгенерированная модель сама может создавать такие запросы.
Самое основное достоинство в том, что в результате все запросы проверяются на синтаксис уже на этапе написания кода, никаких проблем с возможными SQL атаками и т.д. Конечно я не пробовал работать с хранимыми процедурами еще... это впереди... хотя может и не буду с ними заморачиваться, лучше для оптимизации буду активно использовать кэширование. |
Ответ: Таблицы в БД для комментариев
|
Ответ: Таблицы в БД для комментариев
|
Ответ: Таблицы в БД для комментариев
PAX
|
Ответ: Таблицы в БД для комментариев
|
Ответ: Таблицы в БД для комментариев
html конечно хорошо, а как же ajax и динамический контент на страницах?
Я вот кстати все в раздумьях что лучше использовать: LINQ to SQL или Entity Framework... есть у кого мнения по этому поводу? На этапе проектирования базы данных еще есть время выбрать )) потом вряд ли будет легко поменять модель доступа к данным... Сразу скажу что NHibernate использовать не хочу по нескольким причинам, одна из которых ее сложность. *чуть позже* Попробовал создать наследование в LINQ to SQL и понял, что он не поддерживает многотабличное наследование. Наследование может быть выполнено только типу сущности и Nullable полях одной таблицы. Чего очень не хочется делать. Следовательно выбор все таки пал на Entity Framework. Картинку взял отсюда: http://blogs.microsoft.co.il/blogs/b...heritance.aspx |
Часовой пояс GMT +4, время: 07:45. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot