powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / проектирование таблицы клиентов
19 сообщений из 19, страница 1 из 1
проектирование таблицы клиентов
    #37780060
severek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня. Я новичек - проектирую БД и столкнулся с проблемой..
Есть таблица Zakazi, в которой есть поле, являющееся внешнием ключем - Clients
Соответственно есть таблица Clients, в которой номер клиента является первичным ключом. Проблема в том, что клиенты могут быть юр лица, а могут - физлица. Для физлиц нужны поля только ФИО и телефон, для юр.лиц - название предприятия, адрес, реквизиты и так далее.. Т.е. по хорошему физ лица и юр лица должны располагаться в разных таблицах..
Отсюда вопрос...как лучше это реализовать?
У меня пока что только две задумки - или объеденить все поля в одну таблицу - но эта задумка глупая.
Вторая задумка - в таблице Заказы сделать два поля - fizClients, yurClients... и ограничениями сделать чтобы одно было обязательно пустое, если есть значение во втором.
Может кто-нибудь натолкнет на мысль? Спасибо
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37780067
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. по хорошему физ лица и юр лица должны располагаться в разных таблицах..Чушь. Только в одной. Просто набор реквизитов разный.
У нас полные реквизиты (банк, Юр.адрес, ОКПО) требуются только для ЮЛ.
Учтите, что реквизиты зависят от времени, т.е. достаточно часто меняются (однозначно хранить в отдельной таблице).
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37780072
severek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LSV,
поясните плиз..
имеем таблицу Clients с полями...
Clients_Num PK
FIO
Phone
Rekv FK

и в таблице Rekviziti
Rekv_No PK
UNP
Adress
....

Так? И в программе если Rekv != 0, значит - юрлицо?
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37780107
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> физ лица и юр лица должны располагаться в разных таблицах..

Разумеется. Разные атрибуты - следствие законодательных и практических ограничений. Ничего необычного в этом нет.
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37780207
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> физ лица и юр лица должны располагаться в разных таблицах..

Разумеется. Разные атрибуты - следствие законодательных и практических ограничений. Ничего необычного в этом нет.Экая чушь.
В основой таблице:
ID, Название/кратНазвание, тип карточки(Юр/Физ/Проч), признаки актуальности, статусы и т.д.

В дополнительных таблицах:
Ссылка на осн. таблицу, реквизиты(много разных полей), дата актуальности (актуально с).

Ссылки на конт. лиц с телефонами/мейлами/должностями и пр. Конт. Лица - отдельная таблица.

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

В карточке контрагента могут быть привязаны различные договоры с договорными условиями и датами актуальности.


Сделайте функции, кот. умеют выбирать реквизиты на конкретную дату. И пользуйтесь только ими.
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37780231
severek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LSV,
Можно детальнее расписать? Не очень хорошо понял..
Для контактных лиц отдельную таблицу, думаю, делать не буду. Итак путаюсь. Да и не в огромных масштабах юр лица идут.

И еще появился вариант с промежуточной таблицей
Clients_ID
Yur_Lico FK
Fiz_Lico FK
и соответственно 2 таблицы - для юр и физ.
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37780297
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
severekИ еще появился вариант с промежуточной таблицей
Clients_ID
Yur_Lico FK
Fiz_Lico FK
и соответственно 2 таблицы - для юр и физ.Вам же ясно сказали: ОДНА Главная таблица .
Для нее в отдельных таблицах есть ряд спецификаций (т.е. один-ко-многим).

В них может быть что угодно: реквизиты, договора, конт.лица, и пр.

ЧТО НЕПОНЯТНО ?

зы: Спецификация это как накладная с товарами.
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37780304
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Физлица и Юрлица могут лежать как в одной так и в разных таблицах. Однозначного рецепта, эффективного в 100% случаев, НЕТ. Выбор варианта зависит от разных условий.
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37780316
Baby1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVВам же ясно сказали: ОДНА Главная таблица .
Для нее в отдельных таблицах есть ряд спецификаций (т.е. один-ко-многим).

В них может быть что угодно: реквизиты, договора, конт.лица, и пр.

ЧТО НЕПОНЯТНО ?

зы: Спецификация это как накладная с товарами.

Хы... сейчас как раз сижу и изучаю все, что обсуждали здесь на эту тему.. Тоже никак не пойму, контрагентов физиков и юриков в одну таблицу сваливать, или по 3 раскидать (общая, физики и юрики) ((((...
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37780381
Baby1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
severek,
В общем у меня пока получается такая штука (см. файл)...
непонятно пока с отгрузочными реквизита и адресами организаций...в существующей версии типа используют КЛАДР, но судя по данным в БД, нефига они его не используют, там вообще даже для такого чайника как я -помойка... и вообще КЛАДР вроде приказал долго жить, ФИАС вовсю рекламируют...
да, кстати, от мени требуют справочник по контрагентам на предприятии... и не судите строго, пжл))))
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37780399
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Отсюда вопрос...как лучше это реализовать?

Применяя наследование, оно же отношение подкатегории.
Описание как это делается можно найти.
например,
http://www.sql.ru/forum/actualthread.aspx?tid=918558
или
http://sqllessons.com/categories.html


> У меня пока что только две задумки - или объеденить все поля в одну таблицу - но
> эта задумка глупая.

Глупая.

> Вторая задумка - в таблице Заказы сделать два поля - fizClients, yurClients... и
> ограничениями сделать чтобы одно было обязательно пустое, если есть значение во
> втором.

Это -- ещё глупее. ссылаться надо на одну таблицу, а вот уже эта таблица должна
разветвляться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37780404
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 05/03/2012 12:03 PM, severek wrote:
> Доброго дня. Я новичек - проектирую БД и столкнулся с проблемой..

Да, ещё можно найти очень подробное описание этой проблематики в
документации по Hibernate, раздел называется как-то типа
Mapping inheritance.

Там действительно (как говорили в теме) есть несколько способов
реализации наследования в РБД, около 5 если не ошибаюсь, но
только вот только один способ идеален и лишён всех огрехов --
этот. Т.е. по таблице на подкласс, родитель связан с
дочерней таблицей 1-к-0 или 1.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37780431
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Это -- ещё глупее

Был более высокого мнения о ваших способностях. Домашнее задание: перечислить [основные] отличия субъектов предпринимательской деятельности и граждан государства с точки зрения законодательных особенностей участия в сделках.
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37781147
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
severek У меня пока что только две задумки - или объеденить все поля в одну таблицу - но эта задумка глупая.Это один из способов решения. Имеет свои достоинства и свои недостатки. Идеально если сущности скорее одинаковые чем разные.
severek Вторая задумка - в таблице Заказы сделать два поля - fizClients, yurClients... и ограничениями сделать чтобы одно было обязательно пустое, если есть значение во втором.Это тоже один из возможных способов решения. Идеален, если сущности скорее разные, чем одинаковые.
severek Может кто-нибудь натолкнет на мысль? Про наследование с общей таблицей общих свойств упоминали выше. Тоже со своими достоинствами и недостатками.
Какое из решений больше подходит вашей задаче выбирайте сами.
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37781156
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
severek...
У меня пока что только две задумки - или объеденить все поля в одну таблицу - но эта задумка глупая.
...
Так и делайте. Создайте в табличке "Клиент" признак - "ЭтоФизЛицо", и набор полей, различный для каждого
вида клиентов. Не экономьте дисковую память, за это премию не дадут.
Ну, общие поля для видов клиентов клиентов поля ("Момент регистрации", "Телефон" и т.п.) пусть остаются общими, конечно.

Вообще, отказаться от самого простого варианта можно, но только в случае, когда есть на это причины.
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37781236
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
severekДоброго дня. Я новичек - проектирую БД и столкнулся с проблемой..
Есть таблица Zakazi, в которой есть поле, являющееся внешнием ключем - Clients
Соответственно есть таблица Clients, в которой номер клиента является первичным ключом. Проблема в том, что клиенты могут быть юр лица, а могут - физлица. Для физлиц нужны поля только ФИО и телефон, для юр.лиц - название предприятия, адрес, реквизиты и так далее.. Т.е. по хорошему физ лица и юр лица должны располагаться в разных таблицах..
Отсюда вопрос...как лучше это реализовать?
У меня пока что только две задумки - или объеденить все поля в одну таблицу - но эта задумка глупая.
Вторая задумка - в таблице Заказы сделать два поля - fizClients, yurClients... и ограничениями сделать чтобы одно было обязательно пустое, если есть значение во втором.
Может кто-нибудь натолкнет на мысль? Спасибо
Вы не БД проектируете, а весьма специфическую реляционную БД. Когда проектируют БД, проблем не возникает... Потому что думают не о таблицах. А о людях, например:) Ведь "физическое лицо" - это же человек. И сотрудник, например, это тоже человек. Нужно шире смотреть на ситуацию, когда проектируешь БД, иначе Вам удачи не видать:)
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37781325
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot guest_20040621]> Это -- ещё глупее

Был более высокого мнения о ваших способностях.


Ты не ошибался.
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37781336
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Ты не ошибался

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

На всякий случай: с [вырезано цензурой] брудершафтов не пью.
...
Рейтинг: 0 / 0
проектирование таблицы клиентов
    #37781383
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит guest_20040621 что-то дурное задумал.
Нето подписался бы как все нормальные люди ...
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / проектирование таблицы клиентов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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