Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> выбор системы связей, размышлизмы над архитектурой 
:(
    Опции темы
bars80080
Дата 4.3.2013, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



меня всё время беспокоит один отвлечённый вопрос

допустим, есть форум по типу винградовского. есть отдельная таблица постов, есть отдельная таблица разделов, есть таблица топиков, есть таблица статей. также допустим на сайте введено множество сущностей, которые также представлены списком в БД - таблицей: сохранённые изображения, ролики, сохранённые ссылки, список тэгов и т.д. и т.п. сущностей можно придумать много

все сущности могут ссылаться друг на друга. к примеру, одна картинка может относиться, как сообщению, так и к статье, также на неё могут ссылать некоторые теги. а на один гиперлинк могут ссылаться разные посты и статьи. 

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

вопрос: что лучше, создавать под каждую связь свою таблицу (table `image_link`: `image`,`entity`,`id`)
или иметь одну таблицу на все связи (table `common_linx`: `entity1`, `id1`, `entity2`, `id2`)

соответственно, по первому принципу потребуется по запросу на каждую требуемую связь, а их может требоваться и с десяток одновременно. по второму принципу запрос всегда будет один:
Код

SELECT * FROM `common_linx` WHERE (`entity1`=7 AND `id1`=42632) OR (`entity2`=7 AND `id2`=42632)
выполняться он соответственно будет всегда и ворочать огромной таблицей ссылок, в которой будет свалено "всё ко всему"
PM MAIL WWW   Вверх
Akina
Дата 4.3.2013, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Стандартная дилемма - универсальность против эффективности. Общего ответа имхо нет.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bars80080
Дата 4.3.2013, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



ну, мне тут универсальность ни к чему, главное - эффективность

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

а вот с точки зрения эффективности - что лучше?
PM MAIL WWW   Вверх
baldina
Дата 4.3.2013, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 1
Всего: 101



Денормализация

 smile 
Цитата(bars80080 @  4.3.2013,  12:15 Найти цитируемый пост)
меня всё время беспокоит один отвлечённый вопрос

не тереби его
PM MAIL   Вверх
Zloxa
Дата 7.3.2013, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



Цитата(bars80080 @  4.3.2013,  18:54 Найти цитируемый пост)
а вот с точки зрения эффективности - что лучше? 

Частное решение под частный случай, пожалуй, всегда эффективнее общего решения под общий случай.

Цитата(bars80080 @  4.3.2013,  13:15 Найти цитируемый пост)
демонстрировать сущность можно под разным соусом. к примеру, можно показать последние несколько сообщений, относящиеся к статье под самой статьёй. а можно показывать те же посты просто в общем потоке сообщений в теме форума.

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



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
bars80080
Дата 7.3.2013, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



хорошо:

демонстрировать сущность нужно под разным соусом. к примеру, нужно показать последние несколько сообщений, относящиеся к статье под самой статьёй. и нужно показывать те же посты просто в общем потоке сообщений в теме форума.

не от балды же требования выставляются
PM MAIL WWW   Вверх
Zloxa
Дата 7.3.2013, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



bars80080, ну и пили, собсна структуру так чтобы она позволяла эффективно решать нужные задачи.
Если нужно для этого выделить отдельную избыточную сущность - выделяй. Если при этом нужно будет загемороиться согласованностью - гемморойся. Это ведь нужно. smile

Это сообщение отредактировал(а) Zloxa - 7.3.2013, 09:54


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
bars80080
Дата 7.3.2013, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



спасибо, твой совет неоценим
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1201 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.