powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Реализация инфологической схемы. Новичок.
11 сообщений из 11, страница 1 из 1
Реализация инфологической схемы. Новичок.
    #38822804
AndrewMG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Подскажите пожалуйста как я могу реализовать такую схему? (часть инфологической схемы БД).
...
Рейтинг: 0 / 0
Реализация инфологической схемы. Новичок.
    #38822810
AndrewMG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndrewMG,
Вот как создавал и связывал таблицы (изначально планировалась связь многое ко многим). Но после мозгования понял что надо делать один ко многим, но возникла сложность. Т.к. поидее должны храниться внешние ключи связанные с разными таблицами. Т.е. в таблице должен находится либо client_id, либо provider_id. Подскажите как решить эту задачу максимально корректно?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
CREATE TABLE Clients
(
	client_id INT NOT NULL IDENTITY,
	client_Name varchar(40) NOT NULL,
	PRIMARY KEY (client_id)
);

CREATE TABLE Providers
(
	provider_id INT NOT NULL IDENTITY,
	provider_Name varchar(40) NOT NULL,
	PRIMARY KEY (provider_id)
);

CREATE TABLE Contracts
(
	contract_id INT NOT NULL IDENTITY,
	contract_Name varchar(40) NOT NULL,
	PRIMARY KEY (contract_id)
);

CREATE TABLE clients_contracts
(
	client_id INT NOT NULL,
        --provider_id?
	contract_id INT NOT NULL,
	PRIMARY KEY(client_id, contract_id),
	FOREIGN KEY (client_id) REFERENCES Clients(client_id),
	FOREIGN KEY (contract_id) REFERENCES Contracts(contract_id)
	--FOREIGN KEY (provider_id) REFERENCES Providers(provider_id)
);



Меня смущает то, что всегда одно поле будет не использовано, подскажите пожалуйста нормально ли это?)

Спасибо.
...
Рейтинг: 0 / 0
Реализация инфологической схемы. Новичок.
    #38822812
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как учили так и реализовывай
...
Рейтинг: 0 / 0
Реализация инфологической схемы. Новичок.
    #38822817
AndrewMG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257, самоучка
...
Рейтинг: 0 / 0
Реализация инфологической схемы. Новичок.
    #38822826
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrewMG надо делать один ко многимИ зачем тогда таблица clients_contracts
AndrewMG в таблице должен находится либо client_id, либо provider_idНа схеме (да и по жизни) в договоре хранится и client_id и provider_id
AndrewMG Подскажите как решить эту задачу максимально корректно?Если вопрос абстрактный - как реализовать либо, то либо другое, то делается два нуллабле поля, client_id и provider_id, навешиваются два FK ограничения, и check на таблицу чтобы не нулл было только одно поле.
...
Рейтинг: 0 / 0
Реализация инфологической схемы. Новичок.
    #38822841
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrewMGМеня смущает то, что всегда одно поле будет не использовано, подскажите пожалуйста нормально ли это?)
clients_contracts - это договор?
А Contracts - это счёт?
Странный перевод, вызывает путаницу.

Так вот, по вашей инфологической модели нужно сделать в договоре поля ИД клиента и ИД поставщика
А счёт и договор у вас связаны отношением 1:1, то есть просто ПК из таблицы счёт связывается с ПК из таблицы договор

Но вообще лучше сначала продумать инфологическую модель.
...
Рейтинг: 0 / 0
Реализация инфологической схемы. Новичок.
    #38822855
AndrewMG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg, из-за отсутствия опыта схема(её часть) была нарисована именно так. В схеме я пытался показать что договор может быть заключён между дилером(нет на схеме) и клиентом, а так же между дилером и поставщиком.
...
Рейтинг: 0 / 0
Реализация инфологической схемы. Новичок.
    #38822861
AndrewMG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257, просто я пытаюсь объяснить, что в моём договоре должен быть либо client_id, либо provider_id. Т.е. я заключаю либо договор на продажу продукции (где мне необходимо знать ид клиента которому я продаю товар), либо я заключаю договор на поставку продукции мне (где необходимо знать ид поставщика продукции у которого Я покупаю товар). Вот собственно поэтому и возник вопрос.

А по поводу таблицы clients_contracts - в ней я как-раз и хотел хранить ид клиента/ ид поставщика и ид договора. Согласен что название для таблицы - неудачное, уже исправил.
...
Рейтинг: 0 / 0
Реализация инфологической схемы. Новичок.
    #38822867
AndrewMG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,

clients_contracts - подразумевалась как промежуточная таблица для связи таблиц клиенты/договоры (для связи многие ко многим). Я выложил её для понимая того, как я пытался реализовать связь в БД.
...
Рейтинг: 0 / 0
Реализация инфологической схемы. Новичок.
    #38822876
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда дай правильное (полное) условие задачи,
Исправленное (последнее) решение
Проблемы, непонятки и т.д.

а то тут считаем, тут не считаем, тут вообще рыбу заворачивали
...
Рейтинг: 0 / 0
Реализация инфологической схемы. Новичок.
    #38823140
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrewMGSERG1257, просто я пытаюсь объяснить, что в моём договоре должен быть либо client_id, либо provider_id. Т.е. я заключаю либо договор на продажу продукции (где мне необходимо знать ид клиента которому я продаю товар), либо я заключаю договор на поставку продукции мне (где необходимо знать ид поставщика продукции у которого Я покупаю товар). Вот собственно поэтому и возник вопрос.А, вот как...

Обычно в таком случае делают таблицу "Контрагент", который может быть либо поставщиком, либо покупателем. И тогда все связи будут на эту таблицу.

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

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


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