|
Общее Веб-разработка в целом, идеи, проекты... |
20.02.2010, 16:01
|
#1
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Таблицы в БД для комментариев
Проектирую сейчас структуру сайта, который хочу реализовать на ASP.NET MVC. Сейчас изучаю задачу комментирования всего что будет на сайте - статьи, фотографии, файлы и т.п. информация о которых находится в разных таблицах (пока). Пришел к выводу что есть два пути решения данной задачи:
1. Для каждого типа контента создавать свою таблицу с комментариями.
2. Сделать одну таблицу с комментариями, но каким-то хитрым образом переделать структуру таблиц контента.
Отсюда вопрос: Есть ли у кого идеи, каким путем идти и почему?
Для работы с базой данных буду использовать Entity Data Model (EDM Framework) так что все связи в базе данных будут выполнены отношениями, а не программно.
|
(Offline)
|
|
20.02.2010, 16:57
|
#2
|
Модератор
Регистрация: 21.12.2006
Сообщений: 564
Написано 79 полезных сообщений (для 203 пользователей)
|
Ответ: Таблицы в БД для комментариев
+---------------+-------------+---
| CommentID | ContentID | ...
+---------------+-------------+---
В чем проблема-то? Создается одна таблица для ТИПОВ контента, другая для КОНТЕНТА, где у каждой строки будет "привязка" в типу через его ID, третяя таблица - для КОМЕНТАРИЕВ. Привязка в ней будет осуществлятся к ID контента (не типа).
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.02.2010, 19:08
|
#3
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Таблицы в БД для комментариев
Это не решение, не могу представить себе таблицу контента, описывающую все сущности
статьи, фотографии, файлы и т.п.
|
Есть еще какие-либо идеи?
PS: Я вот сейчас задумался о том, как можно использовать наследование в объектной модели базы данных... может с ней что-то получится...
|
(Offline)
|
|
20.02.2010, 21:24
|
#4
|
Модератор
Регистрация: 21.12.2006
Сообщений: 564
Написано 79 полезных сообщений (для 203 пользователей)
|
Ответ: Таблицы в БД для комментариев
Мммм. Чего-то я не понял. Вроде, как оно так всегда делается
Так, как информация, которая дублируется - просто обязана быть в другой таблице.
|
(Offline)
|
|
20.02.2010, 21:59
|
#5
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Таблицы в БД для комментариев
Наследование решило проблему буду дальше проектировать архитектуру базы данных для сайта.
Вот пока какая модель данных получается (таблицы Article и File унаследованы от таблицы Content):
|
(Offline)
|
|
20.02.2010, 22:45
|
#6
|
Модератор
Регистрация: 21.12.2006
Сообщений: 564
Написано 79 полезных сообщений (для 203 пользователей)
|
Ответ: Таблицы в БД для комментариев
Что за инструмент для создания UML?
|
(Offline)
|
|
21.02.2010, 15:31
|
#7
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Таблицы в БД для комментариев
Это инструмент визуального создания объектной модели данных Entity Framework и встроен в Visual Studio 2008 SP1. Может генерировать модель непосредственно из базы данных но такие вещи как наследование необходимо делать вручную. Результатом работы является сгенерированный код, который можно использовать уже в программе для доступа к базе данных без написания SQL запросов. Сгенерированная модель сама может создавать такие запросы.
Самое основное достоинство в том, что в результате все запросы проверяются на синтаксис уже на этапе написания кода, никаких проблем с возможными SQL атаками и т.д.
Конечно я не пробовал работать с хранимыми процедурами еще... это впереди... хотя может и не буду с ними заморачиваться, лучше для оптимизации буду активно использовать кэширование.
|
(Offline)
|
|
21.02.2010, 22:49
|
#8
|
|
Ответ: Таблицы в БД для комментариев
потому мелкий сайт "страничка моей рыбки" генерится за 5-10 секунд, никогда не понимал к чему такие сложности в том чтобы выдать тупой html
|
|
|
Сообщение было полезно следующим пользователям:
|
|
22.02.2010, 00:11
|
#9
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Таблицы в БД для комментариев
Интересно, зачем тогда люди пишут CMS системы...
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
22.02.2010, 00:23
|
#10
|
|
Ответ: Таблицы в БД для комментариев
PAX
пусть себе пишут, но производительность ихних CMS настолько низка что нормальный софт там уже рейтрейс огромной сцены закончит, а оно только 5 кб буковок рожает
вот opera действительно нормально подошла к проблеме - у них сайт это чистые html страницы, но когда нужно их заменяют, а генерируются они только при замене спец. софтом
в прочем мой оффтоп не поможет тебе решить проблему
|
|
|
Сообщение было полезно следующим пользователям:
|
|
22.02.2010, 06:27
|
#11
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Таблицы в БД для комментариев
А кэширование для кого придумали?
|
(Offline)
|
|
22.02.2010, 12:24
|
#12
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Таблицы в БД для комментариев
html конечно хорошо, а как же ajax и динамический контент на страницах?
Я вот кстати все в раздумьях что лучше использовать: LINQ to SQL или Entity Framework... есть у кого мнения по этому поводу? На этапе проектирования базы данных еще есть время выбрать )) потом вряд ли будет легко поменять модель доступа к данным... Сразу скажу что NHibernate использовать не хочу по нескольким причинам, одна из которых ее сложность.
*чуть позже*
Попробовал создать наследование в LINQ to SQL и понял, что он не поддерживает многотабличное наследование. Наследование может быть выполнено только типу сущности и Nullable полях одной таблицы. Чего очень не хочется делать. Следовательно выбор все таки пал на Entity Framework.
Картинку взял отсюда: http://blogs.microsoft.co.il/blogs/b...heritance.aspx
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:28.
|