powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как лучше организовать каталог партнеров
30 сообщений из 30, показаны все 2 страниц
Как лучше организовать каталог партнеров
    #38371929
saturnxxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дано:
Каталог партнеров. Партнеры представляют собой фирмы с 1..Н работниками. В базе должна храниться информация как о фирме, так и о работниках. Фирмы имеют категории, точно так же как и их работники имеют свои отдельные категории. Например: строительная фирма и ее работники: монтажники, маляры и т.д. В роли фирмы может выступать и отдельно взятый человек, например индивидуальный преприниматель.
Мое решение:
Создать таблицу "Партнер", в которой будут храниться оба типа объектов, фирмы их работники будут связаны между собой ключом, индивидуальные предприниматели такого ключа иметь не будут и будут представлять собой фирмы.

Вопрос:
Оптимально ли мое решение, или можно это как-нибудь по-другому реализовать?
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372003
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saturnxxiДано:
Каталог партнеров. Партнеры представляют собой фирмы с 1..Н работниками. В базе должна храниться информация как о фирме, так и о работниках. Фирмы имеют категории, точно так же как и их работники имеют свои отдельные категории. Например: строительная фирма и ее работники: монтажники, маляры и т.д. В роли фирмы может выступать и отдельно взятый человек, например индивидуальный преприниматель.
Мое решение:
Создать таблицу "Партнер", в которой будут храниться оба типа объектов, фирмы их работники будут связаны между собой ключом, индивидуальные предприниматели такого ключа иметь не будут и будут представлять собой фирмы.

Вопрос:
Оптимально ли мое решение, или можно это как-нибудь по-другому реализовать?
Cмотря как сильно пересекаются у Вас множества атрибутов партнера и работника.
Если пересекаются не очень - возможно, лучше сделать все-таки 2 таблицы, partner и person, с двумя связями [0..1] и [1..N]
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372026
saturnxxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскин,

а как же мне потом организовать выборку, если у меня будет несколько таблиц? Т.е. я хочу видеть к примеру последних добавленых н партнеров. Придется ведь обе таблицы опрашивать каждый раз. Или тот же поиск по категориям партнеров. Ведь у индивидуальных предпренимателей тогда не будет связи с категориями фирм, если я их буду хранить в отдельной таблице.
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372036
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saturnxxi,

Нет, индивидуального предпринимателя Вы сохраняете в обе таблицы.
В Partner есть ссылка на Person ( связь "учредитель", мощность [0..1]), в Person - ссылка на Partner ( связь "работник", мощность [0..N]).
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372122
saturnxxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскин,

Хранить один и тот же объект в двух таблицах? Хм, не проще ли тогда делать как я это предложил?
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372136
Фотография lLocust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saturnxxiКот Матроскин,

а как же мне потом организовать выборку, если у меня будет несколько таблиц? Т.е. я хочу видеть к примеру последних добавленых н партнеров. Придется ведь обе таблицы опрашивать каждый раз. Или тот же поиск по категориям партнеров. Ведь у индивидуальных предпренимателей тогда не будет связи с категориями фирм, если я их буду хранить в отдельной таблице.

Не городите велосипед... Да еще и кривой ))

ИП - та же фирма (имеет такие же аттрибуты - счет, ИНН, КПП). У ИП могут быть работники (а может и не быть).
Так что делать нужно
1) таблицу фирм (куда будут добавляться и ИП)
2) таблицу справочник Категорий фирм (например строительная фирма)
3) Таблицу сотрудников фирм
4) Таблицу справочник должностей

P.S. А обращение к 2 таблицам - это не страшно... Даже в средних системах может быть одновременное обращение к 10-ам таблиц...
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372144
Фотография lLocust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saturnxxiКот Матроскин,

Хранить один и тот же объект в двух таблицах? Хм, не проще ли тогда делать как я это предложил?

Это не одно и тоже...
В таблице фирм Вы храните данные ИП, как фирме (Наименование, ИНН, КПП, Счет, Банк, Адрес, Адрес склада, и много еще какой информации можно придумать )) )
В Таблице сотрудников Вы храние данные ИП как человека (ФИО, контактный телефон, где найти).

Да и по наименованию: раньше был "ПБОЮЛ Иванов И.И.", сейчас "ИП Иванов И.И", а человек как был Иванов Иван Иванович, так им и остался...
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372188
saturnxxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lLocust,

Спасибо, за пространственный ответ. Множества аттрибутов (вы слишком много их додумали за меня) действительно пересекаются. Если я вынесу адрес в отдельную таблицу, то они будут практически идентичны. Не могли бы вы мне пояснить, почему мое решение нерационально? Исходите пожалуйста при этом только из той информации, что я написал.
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372200
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saturnxxi,

Лучше приложи схему, а то в итоге так и непонял чего ты там где хочешь хранить. Визуально всетаки воспринимается лучше.
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372210
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saturnxxi Не могли бы вы мне пояснить, почему мое решение нерационально? Исходите пожалуйста при этом только из той информации, что я написал.
При Вашей схеме Вам надо в каждом запросе отсекать обьекты "не того" типа - поскольку физически они лежат в той же таблице.
К примеру, запрос "сколько людей зарегистрировано в нашей системе?" у Вас будет выглядеть сложнее (возможно - существенно сложнее), чем
Код: sql
1.
select count(*) from person
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372238
Фотография lLocust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saturnxxilLocust,

Спасибо, за пространственный ответ. Множества аттрибутов (вы слишком много их додумали за меня) действительно пересекаются. Если я вынесу адрес в отдельную таблицу, то они будут практически идентичны. Не могли бы вы мне пояснить, почему мое решение нерационально? Исходите пожалуйста при этом только из той информации, что я написал.

Ну тогда Вы по-подробнее опишите что в итоге нужно? Если Вам нужно хранить ИП как работника - храните. Жалко, что ли? Если у Вас фирма отличается от человека только адресом, то зачем вообще вводить какие-то понятия... Храните все в одной таблице, а адреса в другой... Только потом (когда придет бизнес и скажет что хочет у фирмы одни атрибуты, а у их работников другие) что делать будите?
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372244
Фотография lLocust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lLocust... будите ?...
* будете ... ( что-то глупые ошибки пошли к концу дня ))) )
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372255
Фотография lLocust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saturnxxilLocust,

Спасибо, за пространственный ответ. Множества аттрибутов (вы слишком много их додумали за меня) действительно пересекаются. Если я вынесу адрес в отдельную таблицу, то они будут практически идентичны. Не могли бы вы мне пояснить, почему мое решение нерационально? Исходите пожалуйста при этом только из той информации, что я написал.

Ах, да... и Как я уже говорил:

У меня отец был предпринимателем.
Сначала по документам он был "ПБОЮЛ Курочкин Н.И", потом то ли прошел перерегистрацию, то ли налоговая сама поменяла на "ИП Курочкин Н.И", а в жизни он "Курочкин Никифр Игнатьевич". Есть разница? (Имена, естественно выдуманы :) )
А Вы что будете хранить? ИП как ФИО, или ФИО как ИП
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372430
saturnxxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При Вашей схеме Вам надо в каждом запросе отсекать обьекты "не того" типа - поскольку физически они лежат в той же таблице.
К примеру, запрос "сколько людей зарегистрировано в нашей системе?" у Вас будет выглядеть сложнее (возможно - существенно сложнее), чем...
Это серьезный довод.

Ну тогда Вы по-подробнее опишите что в итоге нужно? Если Вам нужно хранить ИП как работника - храните. Жалко, что ли? Если у Вас фирма отличается от человека только адресом, то зачем вообще вводить какие-то понятия... Храните все в одной таблице, а адреса в другой...
В уже существующей схеме все реализованно так, как вы и предлагаете, т.е. фирма - работник (1 к Н). Выборка в большинстве случаев происходит по фирме, есть также возможность искать конкретного специалиста по специальности. Для создания есть 2 формы: для фирмы с возможностью выбора специализации фирмы и форма для рабочего с возможностью выбора его собственной специализации. Цель - возможность учитывать ИП. (или, если точнее, людей работающих в одиночку). Т.е. если я просто буду делать из ИП фирму, то нет возможности выбрать специализацию рабочего, если буду делать из него рабочего, то нет связи со специализацией фирмы. Опять же, как я уже сказал, выборка происходит почти везде по фирмам и если я оставлю 2 таблицы, то мне нужно будет как-то комбинировать результаты выборок из 2 таблиц. Сортировка, постраничный вывод, давай до свидания.
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372482
Фотография lLocust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saturnxxiВ уже существующей схеме все реализованно так, как вы и предлагаете, т.е. фирма - работник (1 к Н). Выборка в большинстве случаев происходит по фирме, есть также возможность искать конкретного специалиста по специальности. Для создания есть 2 формы: для фирмы с возможностью выбора специализации фирмы и форма для рабочего с возможностью выбора его собственной специализации. Цель - возможность учитывать ИП. (или, если точнее, людей работающих в одиночку). Т.е. если я просто буду делать из ИП фирму, то нет возможности выбрать специализацию рабочего, если буду делать из него рабочего, то нет связи со специализацией фирмы. Опять же, как я уже сказал, выборка происходит почти везде по фирмам и если я оставлю 2 таблицы, то мне нужно будет как-то комбинировать результаты выборок из 2 таблиц. Сортировка, постраничный вывод, давай до свидания.

У Вас, как я понимаю, специализации фирмы и сотрудника хранятся как текстовые поля? (Иначе такой вопрос и не стоял бы, т.к. справочники специализаций фирм и сотрудников отличаются кардинально!!!).
Вообще можно не комбинировать результаты выборок. А просто сделать запрос сразу из двух таблиц, тогда и сортировка и постраничный вывод будут работать.

Вообще я бы сделал так: (см. схему).
1) Специализации завести как отдельные таблицы.
2) Дополнительно завести связи (Т.к. у фирмы/сотрудника может быть несколько специализаций).
3) При добавлении ИП (на форме сделать выбор типа организации) добавлять поля для редактирования таблицы сотрудников (и связи сотрудника с его специализациями). Но физически данные хранить в двух(!) таблицах. По фирме в своей, по сотруднику в своей.
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372529
saturnxxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем большое спасибо за помощь. Думаю, что так и поступлю.
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372530
Фотография ssas12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Улыбнуло :)
Теоретические рассуждения студентов. Представленная схема полетит к чертям в реальной жизни и при большом охвате.
Например,
ООО "Лютик" в мегаполисе может быть несколько десятков, заполненность атрибутов и их достоверности может не быть по определению, кто когда в какой компании работал - тоже тот еще вопрос отследить
и т.д. и т.п.
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372603
londinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторООО "Лютик" в мегаполисе может быть несколько десятков
И черт с ним. У всех этих ООО должны отличаться ОКПО (идентификтаор предприятия)
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372815
Фотография lLocust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
londiniumавторООО "Лютик" в мегаполисе может быть несколько десятков
И черт с ним. У всех этих ООО должны отличаться ОКПО (идентификтаор предприятия)

И пара ИНН/КПП ))
А вообще так про любую схему можно сказать, что как только она столкнется с реалиями жизни, то все не будет работать, вот только это уже больше административный вопрос (я про неправильно заполненные атрибуты).
Так что лучше на бумаге! да, ssas12345?
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38372951
saturnxxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ssas12345Улыбнуло :)
Теоретические рассуждения студентов. Представленная схема полетит к чертям в реальной жизни и при большом охвате.
Например,
ООО "Лютик" в мегаполисе может быть несколько десятков, заполненность атрибутов и их достоверности может не быть по определению, кто когда в какой компании работал - тоже тот еще вопрос отследить
и т.д. и т.п.

И вам спасибо за ваши мысли. Я уже просил выше, что не нужно за меня ничего додумывать, исходите лишь из того, что я написал. Если у вас есть конкретные предложения по реализции, я с удовольствием их выслушаю.
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38373246
Фотография ssas12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saturnxxi,

поскольку схему своих решений вы не предложили, а предложил только lLocust
то додумывать приходится.
Так, как минимум в схеме должно быть отражено решение по идентификации и унификации фирм. ИНН/КПП не всегда могут быть известны.
Если желтенькие lookup-таблицы такие какие представлены, без различающихся доп. атрибутов, то их можно свести в одну таблицу

Как будут учитываться понятия холдинга, групп компаний? (а Заказчик или жизнь - они это запросят рано или поздно)
Как будут учитываться периоды актуальности информации?
Сотрудники имеют характеристику иерархичности, требуют систематизации, т.к. просто список в 3-5 тысяч ФИО - вряд ли удачное решение.
Также, нередко интересна инфа о первых лицах компаний

Каталог партнеров - слово каталог очень сильное - то не просто накидать пару табличек.

lLocust,
Про бумажный учет я ничего не говорил.
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38373359
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssas12345Если желтенькие lookup-таблицы такие какие представлены, без различающихся доп. атрибутов, то их можно свести в одну таблицу

... и сотрудникам начнут назначаться специализации фирм, а фирмам - специальности сотрудников.
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38373383
Фотография ssas12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскинssas12345Если желтенькие lookup-таблицы такие какие представлены, без различающихся доп. атрибутов, то их можно свести в одну таблицу

... и сотрудникам начнут назначаться специализации фирм, а фирмам - специальности сотрудников.

Кот Матроскин,
ну что же вы право, где я такое допускал?
Формат хранения <> способ биндинга к формам GUI.
Надеюсь, у автора будет Data Layer, из которого обращение к БД организовано посредством параметризованных хранимых процедур.
Если хорошо сделать Data Layer, то можно хоть толстый хоть тонкий клиент натягивать.
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38373882
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssas12345Кот Матроскинпропущено...

... и сотрудникам начнут назначаться специализации фирм, а фирмам - специальности сотрудников.

Кот Матроскин,
ну что же вы право, где я такое допускал?
Формат хранения <> способ биндинга к формам GUI.
Надеюсь, у автора будет Data Layer, из которого обращение к БД организовано посредством параметризованных хранимых процедур.
Если хорошо сделать Data Layer, то можно хоть толстый хоть тонкий клиент натягивать.
Мы обсуждаем БД, а не "биндинг к формам GUI". В БД - кривизна, и говорить "Ну и что что кривизна, я ее пофиксю биндингом к формам GUI" - подход, мягко говоря, не рекомендуемый.
Данные в БД могут изменяться и вообще без GUI, и с несколькими независимыми клиентами, не все из которых Вы контролируете, и т.п. Поэтому весьма желательно не надеяться на "биндинг к формам GUI", "Data Layer" и делать БД так, чтобы некорретные данные
туда занести было невозможно.
Причем ладно бы от обсуждаемого обьединения таблиц был какой-то заметный смысл - да, иногда приходится пожертвовать надежностью, чтолбы выиграть что-то еще. Но тут-то где выигрыш, кроме того что на 1 объект в БД меньше?
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38373907
Фотография ssas12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин,

для простых lookUp-ов плодить кучу таблиц - накладно и поддержка и схему засорять объектами.
То, что таких табличек будет много в большой системе - можно не сомневаться [про большую систему намекает термин -Каталог партнеров]
Насчет обновления данных минуя GUI и DataLayer - тоже вестимо, не первая пятилетка стажа за плечами.
Так, задачу соблюдения функциональной зависимости также соблюдается, обеспечивается соотв. функционалом СУБД.
Другое дело, если lookUp-таблица все же окажется полноценной сущностью, то тогда да - расписываем атрибуты по полной.


saturnxxi,
еще одна рекомендация:
проектируя схему, хорошо бы иметь приличный массив реальных данных, который хорошо проанализировать, профилировать;
поинтересоваться, уяснить возможное будущее развитие системы;
посмотреть примеры из известных больших решений - нужно перенять

p.s.
Качество своих баз данных я очень жестко контролировал и контролирую.
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38374293
saturnxxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ssas12345,

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

авторТак, как минимум в схеме должно быть отражено решение по идентификации и унификации фирм. ИНН/КПП не всегда могут быть известны.
В вашем каталоге - да, в моем - нет. Да я даже понятия не имею, что значат эти ваши ИНН, КПП (хотя нет, кпп - это же контрольно- пропускной пункт, да?) - такой я тупой.

авторКак будут учитываться понятия холдинга, групп компаний? (а Заказчик или жизнь - они это запросят рано или поздно)
Как будут учитываться периоды актуальности информации?
Сотрудники имеют характеристику иерархичности, требуют систематизации, т.к. просто список в 3-5 тысяч ФИО - вряд ли удачное решение.
Также, нередко интересна инфа о первых лицах компаний
1. Никак. Заказчик не попросит.
2. Никак. Это не нужно.
3. Нет, не имеют они иерархичности, систематизированы по специальностям.
4. Кому они нужны, эти первые лица? Мне точно нет.

авторКаталог партнеров - слово каталог очень сильное - то не просто накидать пару табличек.
Сильным словом является скорее прилагательное в превосходной степени. В остальном же вы скорее решаете свою задачу: создаете свой каталог и по вашим представлениям.

авторКачество своих баз данных я очень жестко контролировал и контролирую.
Я ни капли не сомневаюсь в вашей компетентности, но вы уже переходите от контроля своих баз к контролю моих.

Всем удачного дня.
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38374618
Фотография ssas12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saturnxxi,

тогда не называйте это каталогом.
Это просто таблица-список каких-то слабоидентифицированных компаний. Этот справочник начнет превращаться в свалку при количестве записей этак > 500
Про незнание ИНН,КПП - тут совсем грустно

будем считать, еще Учитесь
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38374707
londinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПро незнание ИНН,КПП - тут совсем грустно
Ну тогда поделитесь, пожалуйста, как Вы без знания ИНН/КПП разведете два предприятия - неясно, это одно и тоже предприятие или, все-таки, два разных?
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38374760
saturnxxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ssas12345saturnxxi,

тогда не называйте это каталогом.
Это просто таблица-список каких-то слабоидентифицированных компаний. Этот справочник начнет превращаться в свалку при количестве записей этак > 500
Про незнание ИНН,КПП - тут совсем грустно

будем считать, еще Учитесь

1. Катало́г (от греч. κατάλογος) — в общем случае, некий список информации об объектах, составленный с целью облегчения поиска этих объектов по какому-то признаку. По-моему тут все понятно. Если у вас есть другие определения, милости просим.

2. У вас глобус России на столе стоит? Или иначе: за МКАД-ом жизни нет?

3. Учиться никогда не поздно. Особенно при наличии таких высокомерных менторов.
...
Рейтинг: 0 / 0
Как лучше организовать каталог партнеров
    #38375232
Фотография ssas12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saturnxxi,

разжевывать упрямящемуся проектировщику - оно мне надо?
вольны делать как хотите, лишь бы потом приход на завешивался на одну компанию, а расход на другую
и прочие последствия.
...
Рейтинг: 0 / 0
30 сообщений из 30, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как лучше организовать каталог партнеров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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