powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / помогите со структурой
8 сообщений из 8, страница 1 из 1
помогите со структурой
    #34078814
Perederiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
привет
не пойму как сделать.

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

как правильно написать структуру таблицы ?
...
Рейтинг: 0 / 0
помогите со структурой
    #34078847
Perederiyпривет
не пойму как сделать.

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

как правильно написать структуру таблицы ?
Что-то подобное было у нас в системе: изделие может быть само-по себе или быть полуфабрикатом для другого изделия.
Предлагаемая структура таблицы следующая:
Код: plaintext
1.
2.
3.
4.
5.
6.
Таблица (ID лица, ID плательщика)
        Справочник лиц (ID лица, Наименование лица)

        Связи:
        Таблица(ID лица) N >-- 1 Справочник лиц (ID лица)
        Таблица (ID плательщика) N >-- 1 Справочник лиц(ID лица)
...
Рейтинг: 0 / 0
помогите со структурой
    #34078874
alex1972
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Perederiyпривет
не пойму как сделать.

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

как правильно написать структуру таблицы ?

Не очень понятно, что Вам необходимо.

Вы что-то проектируете или решаете теоретические задачки?

Вообще Вашу таблицу нужно разбивать на несколько, а затем связывать их. Вам необходимо клиентов(плательщиков) или ещё кого-то поместить в одну таблицу, а операции в другую и т.д.
Как вариант -это то, что Вам предлагает Станислав С, но там тоже как видите не одна таблица...

Но для того, чтобы Вам правильно ответили начучитесь правильно ставить вопрос - это уже половина ответа...
...
Рейтинг: 0 / 0
помогите со структурой
    #34078881
Perederiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я тоже так делаю но проектировании
Связи:
Таблица(ID лица) N >-- 1 Справочник лиц (ID лица) - OK
Таблица (ID плательщика) N >-- 1 Справочник лиц(ID лица) - Error
БД сообщает что связь с таблицей Справочник лиц уже установлена - больше нельзя !
...
Рейтинг: 0 / 0
помогите со структурой
    #34079007
Perederiyя тоже так делаю но проектировании
Связи:
Таблица(ID лица) N >-- 1 Справочник лиц (ID лица) - OK
Таблица (ID плательщика) N >-- 1 Справочник лиц(ID лица) - Error
БД сообщает что связь с таблицей Справочник лиц уже установлена - больше нельзя !
Ну, не знаю....
У меня (Oracle 9) в командном окне следующие команды проходят без проблем:
Код: plaintext
1.
2.
3.
4.
5.
create table Faces (Id number primary key, Name varchar2( 30 )) --Справочник лиц
create table Tab1 (Id1 number, Id2 number) --Целевая таблица

Alter table Tab1 add foreign key (Id1) references Faces(id) --Установление отношения по полю ID лица
Alter table Tab1 add foreign key (Id2) references Faces(id) --Установление отношения по ID плательщика.
...
Рейтинг: 0 / 0
помогите со структурой
    #34079018
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Perederiyкак правильно написать структуру таблицы ?
Cлишком абстрактный вопрос. Просто пара примеров структур, в принципе отвечающих условию:

1. Связь из таблицы "сам на себя" (кто является плательщиком для записи N)

2. Поля "номер группы" и "является плательщиком для остальных членов группы".

Вряд ли хоть одна из них подходит для реального применения, но в принципе они соответствуют постановке задачи. Так что - уточняйте постановку.

PerederiyБД сообщает что связь с таблицей Справочник лиц уже установлена - больше нельзя !
Убейте ее об стену.

Но более вероятно, что не "БД сообщает", а "Вы пользуетесь кривым дизайнером таблиц" или "Вы что-то не так рисуете".
...
Рейтинг: 0 / 0
помогите со структурой
    #34079152
Perederiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1 Уточняю задачу
есть старая прога с таблицей
Priznak,ID организации,ID организации платящей за эту организации

Примечание
1 Priznak - Плательщик, Не плательщик
2 Все находятся в этой же таблице
те может быть
Плательщик,1,1 (те организация ID1 является плательщиком и платит за себя)
Плательщик,4,4 (те организация ID4 является плательщиком и платит за себя)
Не плательщик,2,1 (те организация ID2 не является плательщиком и за нее платит ID1 )
Не плательщик,3,1 (те организация ID3 не является плательщиком и за нее платит ID1 )
Не плательщик,5,4 (те организация ID5 не является плательщиком и за нее платит ID4 )

Все это было в ОДНОЙ таблице и коды проставлялись ВРУЧНУЮ оператором
Стоит задача как-то переделать это с учетом нормализации данных и тд

2 Насчет
Таблица (ID лица, ID плательщика)
Справочник лиц (ID лица, Наименование лица)

Связи:
Таблица(ID лица) N >-- 1 Справочник лиц (ID лица)
Таблица (ID плательщика) N >-- 1 Справочник лиц(ID лица)
Непонятно
Если удалю из Справочник лиц лицо являющееся плательщиком, получается что для лица для которого оно являлось плательщиком вообще не будет никакого плательщика ?
Или чего-то не понимаю ?
...
Рейтинг: 0 / 0
помогите со структурой
    #34079185
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PerederiyСтоит задача как-то переделать это с учетом нормализации данных и тд
"Как-то переделать" - это недостаточно конкретная постановка задачи.

Для нормализации этой таблицы достаточно выкинуть первое поле (которое признак плательщика). Кроме того, я бы наверное обозначал самоплательщика как "ID плательщика" is null, а не как "ID плательщика" = "ID лица", но тут уже надо смотреть по месту.

PerederiyЕсли удалю из Справочник лиц лицо являющееся плательщиком, получается что для лица для которого оно являлось плательщиком вообще не будет никакого плательщика ?
Это вопрос к бизнес-логике вашей системы, что должно происходить в этом случае. По умолчанию система просто не даст удалить такое лицо, сработает foreign key restriction.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / помогите со структурой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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