powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / задача с поиском регионов (85 штук) для 50 организаций
16 сообщений из 16, страница 1 из 1
задача с поиском регионов (85 штук) для 50 организаций
    #38879894
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приветствую!
есть 85 субъектов РФ, в которых:
1. работают/не работают организации
2. поставляют/не поставляют оборудование организации
организаций 50 штук
и вот мне для каждого клиента нужно найти такие организации, которые под его запросы подойдут - работают в конкретном регионе, или поставляют в конкретный регион, или сразу оба два.
имею 2 таблицы: регионы на 85 позиций и организации на 50 позиций
задача осложняется тем, что пунктов 2: работа и поставка. с 1м было бы проще

решения, вариант 1:
сделать таблицу субъектов некой динамической таблицей, напихав туда 50 столбов и отмечать: 0 - нет, 1 - работает, 2 - поставляет, 3 - оба два.
но что делать, если организаций станет 50000?

вариант 2:
напихать в каждую организацию список субъектов, с которыми он работает/поставляет (в виде hex, например), но тогда поиск будет сложным с т.з. ресурсов (я на хайлоад ориентируюсь)
SELECT * FROM `org` WHERE `working` LIKE '%2f%' AND `supply` LIKE '%2f%', где 2f это номер нужного региона
т.е. без индекса. оно конечно мало строк всего и грузанёт не сильно, ну а если много, то как решать такие задачи?
мало того, 2f может найтись в строке 12f1

вариант 3: некая временная таблица

вариант 4: ваш вариант?
...
Рейтинг: 0 / 0
задача с поиском регионов (85 штук) для 50 организаций
    #38879897
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему, это стандартная связь M:N как в учебнике.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
задача с поиском регионов (85 штук) для 50 организаций
    #38879907
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovПо-моему, это стандартная связь M:N как в учебнике.

many 2 many это 2 объекта, а тут 3: клиент, организация, субъект
...
Рейтинг: 0 / 0
задача с поиском регионов (85 штук) для 50 организаций
    #38879910
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78имею 2 таблицы
tip78а тут 3
Ты бы эта... определился для начала.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
задача с поиском регионов (85 штук) для 50 организаций
    #38879913
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovtip78имею 2 таблицы
tip78а тут 3
Ты бы эта... определился для начала.


а на 2 строки вверх глаза не судьба поднять?
tip78 и вот мне для каждого клиента нужно найти такие организации, которые под его запросы подойдут - работают в конкретном регионе, или поставляют в конкретный регион, или сразу оба два.
имею 2 таблицы: регионы на 85 позиций и организации на 50 позиций
ок, 3 таблицы я имею
...
Рейтинг: 0 / 0
задача с поиском регионов (85 штук) для 50 организаций
    #38879918
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78а на 2 строки вверх глаза не судьба поднять?
Смысла нет. Связь организаций с регионами всё равно N:M. Существование третьей сущности на
неё не влияет.

tip78ок, 3 таблицы я имею
И как клиент связан с организациями или регионами?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
задача с поиском регионов (85 штук) для 50 организаций
    #38879919
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем-то задача упрощается, если в организациях держать список субъектов через пробел например
но есть ли покрасивее вариант?
...
Рейтинг: 0 / 0
задача с поиском регионов (85 штук) для 50 организаций
    #38879921
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovИ как клиент связан с организациями или регионами?


ну написал же:
автори вот мне для каждого клиента нужно найти такие организации, которые под его запросы подойдут - работают в конкретном регионе, или поставляют в конкретный регион, или сразу оба два.

мне нужно сначала добавить организации так, чтобы в них были отмечены регионы, в которых они работают
а потом клиенту находить организации с нужными регионами
...
Рейтинг: 0 / 0
задача с поиском регионов (85 штук) для 50 организаций
    #38879927
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78мне нужно сначала добавить организации так, чтобы в них были отмечены регионы,
в которых они работают
Это классическая связь M:N. В точности как в букваре.

tip78потом клиенту находить организации с нужными регионами
Это простейший запрос с двумя JOIN одним условием IN и, возможно, GROUP BY или DISTINCT.

Так в чём проблема-то?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
задача с поиском регионов (85 штук) для 50 организаций
    #38879934
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЭто классическая связь M:N. В точности как в букваре.
давай тогда предметно - что за связь, где этот букварь почитать?

Dimitry SibiryakovЭто простейший запрос с двумя JOIN одним условием IN и, возможно, GROUP BY или DISTINCT.

Так в чём проблема-то?

проблема в том, что задачу я описываю недостаточно ясно.
...
Рейтинг: 0 / 0
задача с поиском регионов (85 штук) для 50 организаций
    #38879936
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ещё ты сосредоточился на поиске, а мне нужна структура базы в основном
...
Рейтинг: 0 / 0
задача с поиском регионов (85 штук) для 50 организаций
    #38879938
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78давай тогда предметно - что за связь, где этот букварь почитать?
Google: http://www.google.ru/search?nord=1&q=проектирование БД связь "M:N"
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
задача с поиском регионов (85 штук) для 50 организаций
    #38879943
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, ну я понял, предлагается сделать таблицу, где будет множество связей:
Москва -> орг1
Москва -> орг5
Москва -> орг12
Питер -> орг1
Питер -> орг2

т.о. 85 регионов превратятся в 100585

да, я такие решения видел конечно во всяких магазинах и CMS
я пытался найти решение, где можно было например в регионах перечислить все организации в одной строчке через запятую например
поскольку организации редактируются крайне редко, поиск идёт по региону, то на запрос клиента с конкретным регионом я просто получаю список организаций в нём
вот такое решение не лучше разве?
...
Рейтинг: 0 / 0
задача с поиском регионов (85 штук) для 50 организаций
    #38879945
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78такое решение не лучше разве?
Нарушение первой нормальной формы обычно приносит больше вреда чем пользы и должно быть
очень хорошо обосновано.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
задача с поиском регионов (85 штук) для 50 организаций
    #38879954
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, ок, спасибо
...
Рейтинг: 0 / 0
задача с поиском регионов (85 штук) для 50 организаций
    #38881140
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78т.о. 85 регионов превратятся в 100585

И что? Это повод, чтобы изобрести велосипед?
На то она и база, чтобы хранить данные. При чем у вас простейший случай, когда вы не задумываетесь о временных периодах, на который действуют эти связки. А это неожиданно еще умножает данные. И на мой взгляд ничего страшного в этом нет.

Оснований городить огород в вашем случае нет. Dimitry Sibiryakov дело говорит.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / задача с поиском регионов (85 штук) для 50 организаций
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]