Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Веб-программирование > Общее

Общее Веб-разработка в целом, идеи, проекты...

Ответ
 
Опции темы
Старый 20.02.2010, 16:01   #1
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Таблицы в БД для комментариев

Проектирую сейчас структуру сайта, который хочу реализовать на ASP.NET MVC. Сейчас изучаю задачу комментирования всего что будет на сайте - статьи, фотографии, файлы и т.п. информация о которых находится в разных таблицах (пока). Пришел к выводу что есть два пути решения данной задачи:
1. Для каждого типа контента создавать свою таблицу с комментариями.
2. Сделать одну таблицу с комментариями, но каким-то хитрым образом переделать структуру таблиц контента.

Отсюда вопрос: Есть ли у кого идеи, каким путем идти и почему?

Для работы с базой данных буду использовать Entity Data Model (EDM Framework) так что все связи в базе данных будут выполнены отношениями, а не программно.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 20.02.2010, 16:57   #2
dector
Модератор
 
Регистрация: 21.12.2006
Сообщений: 564
Написано 79 полезных сообщений
(для 203 пользователей)
Ответ: Таблицы в БД для комментариев

+---------------+-------------+---
| CommentID | ContentID | ...
+---------------+-------------+---

В чем проблема-то? Создается одна таблица для ТИПОВ контента, другая для КОНТЕНТА, где у каждой строки будет "привязка" в типу через его ID, третяя таблица - для КОМЕНТАРИЕВ. Привязка в ней будет осуществлятся к ID контента (не типа).
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (21.02.2010)
Старый 20.02.2010, 19:08   #3
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Таблицы в БД для комментариев

Это не решение, не могу представить себе таблицу контента, описывающую все сущности
статьи, фотографии, файлы и т.п.
Есть еще какие-либо идеи?

PS: Я вот сейчас задумался о том, как можно использовать наследование в объектной модели базы данных... может с ней что-то получится...
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 20.02.2010, 21:24   #4
dector
Модератор
 
Регистрация: 21.12.2006
Сообщений: 564
Написано 79 полезных сообщений
(для 203 пользователей)
Ответ: Таблицы в БД для комментариев

Мммм. Чего-то я не понял. Вроде, как оно так всегда делается
Так, как информация, которая дублируется - просто обязана быть в другой таблице.
(Offline)
 
Ответить с цитированием
Старый 20.02.2010, 21:59   #5
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Таблицы в БД для комментариев

Наследование решило проблему буду дальше проектировать архитектуру базы данных для сайта.

Вот пока какая модель данных получается (таблицы Article и File унаследованы от таблицы Content):
Миниатюры
Нажмите на изображение для увеличения
Название: Diagram.png
Просмотров: 974
Размер:	108.1 Кб
ID:	9154  
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 20.02.2010, 22:45   #6
dector
Модератор
 
Регистрация: 21.12.2006
Сообщений: 564
Написано 79 полезных сообщений
(для 203 пользователей)
Ответ: Таблицы в БД для комментариев

Что за инструмент для создания UML?
(Offline)
 
Ответить с цитированием
Старый 21.02.2010, 15:31   #7
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Таблицы в БД для комментариев

Это инструмент визуального создания объектной модели данных Entity Framework и встроен в Visual Studio 2008 SP1. Может генерировать модель непосредственно из базы данных но такие вещи как наследование необходимо делать вручную. Результатом работы является сгенерированный код, который можно использовать уже в программе для доступа к базе данных без написания SQL запросов. Сгенерированная модель сама может создавать такие запросы.

Самое основное достоинство в том, что в результате все запросы проверяются на синтаксис уже на этапе написания кода, никаких проблем с возможными SQL атаками и т.д.

Конечно я не пробовал работать с хранимыми процедурами еще... это впереди... хотя может и не буду с ними заморачиваться, лучше для оптимизации буду активно использовать кэширование.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 21.02.2010, 22:49   #8
jimon
 
Сообщений: n/a
Ответ: Таблицы в БД для комментариев


потому мелкий сайт "страничка моей рыбки" генерится за 5-10 секунд, никогда не понимал к чему такие сложности в том чтобы выдать тупой html
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dector (22.02.2010)
Старый 22.02.2010, 00:11   #9
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Таблицы в БД для комментариев

Интересно, зачем тогда люди пишут CMS системы...
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (22.02.2010)
Старый 22.02.2010, 00:23   #10
jimon
 
Сообщений: n/a
Ответ: Таблицы в БД для комментариев

PAX

пусть себе пишут, но производительность ихних CMS настолько низка что нормальный софт там уже рейтрейс огромной сцены закончит, а оно только 5 кб буковок рожает

вот opera действительно нормально подошла к проблеме - у них сайт это чистые html страницы, но когда нужно их заменяют, а генерируются они только при замене спец. софтом

в прочем мой оффтоп не поможет тебе решить проблему
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dector (22.02.2010)
Старый 22.02.2010, 06:27   #11
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Таблицы в БД для комментариев

А кэширование для кого придумали?
(Offline)
 
Ответить с цитированием
Старый 22.02.2010, 12:24   #12
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 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
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 03:10.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com