|
|
|
Избыточность или нет
|
|||
|---|---|---|---|
|
#18+
Всем привет! Ребята столкнулся с вопросом, на который у меня нет четкого ответа.Не достаточно опыта.Может кто-то сможет прояснить. Изложу суть на примере. Существует 3 сущности "компания" (C),"акция"(A),"бренд"(B). Связи такие C->(m)A, A->(m)B. Поставлена задача , отображать на странице описания конкретной компании бренды с которыми она работает(продает,рекламирует и т.п).То есть тупо список брендов через запятую. Способы решения 1) Собрать джойнами все бренды которые привязаны к акциям конкретной компании SELECT brands.name FROM brands INNER JOIN action2brand ON action2brand.brand_id = brand.id INNER JOIN actions a ON a.id = action2brand.action_id WHERE a.company_id = %d Способ решения 2) заключается в изменении подхода проектирования, а именно: изначально добавляется еще одна связка вида C->(m)B.Выглядит это так Вы пользователь заходите на страничку своей компании, привязываете к ней бренды с которыми вы работаете(некий выпадающий список, где большое количество брендов все которые есть в бд), далее вы хотите создать акцию данной компании, вы создаете ее. на странице созданной акции нужно указать бренды на которые она распространяется вам доступен список брендов, но только тех которые вы привязали к своей компании изначально. Второй подход создает избыточность , нужна еще одна таблица привязки компании к бренду.Но выборка брендов компании проходит в итоге проще и быстрее SELECT brands.name FROM brands INNER JOIN company2brand c2b ON c2b.brand_id = brands.id WHERE c2b.company_id = %d Как следует поступить в данной ситуации, пожертвовать скоростью , либо идти по избыточному подходу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2011, 13:36 |
|
||
|
Избыточность или нет
|
|||
|---|---|---|---|
|
#18+
ramzes600, 1 вариант не вариант, впрочем как и второй ) можно норм написать запрос Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. возможностей для выборок уйма у вас, тк структура норм ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2011, 15:18 |
|
||
|
Избыточность или нет
|
|||
|---|---|---|---|
|
#18+
ramzes600, 1. Структура данных в первую очередь должна бизнес-требованиям соответствовать, а уж потом стоит думать об оптимизации. У вас в вариантах 1 и 2 просто разные бизнес задачи реализованы, соответственно и структуры разные. 2. Для такого элементарного запроса придумывать оптимизационные костыли - дело лишнее. СУБД и индексы все сделают за вас. Вы сначала хоть мало мальский тест проведите и убедитесь, что действительно тормозит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2011, 16:46 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37369052&tid=1542077]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
142ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 430ms |

| 0 / 0 |
