powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Никак не пойму как сделать связь между таблицами!
9 сообщений из 9, страница 1 из 1
Никак не пойму как сделать связь между таблицами!
    #36940387
GaTTaCa_89i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно чтобы таблица Clients имела связь с таблицой Services, а также Clients с Staff, как это сделать?

CREATE TABLE Clients (
Client_id int not null auto_increment,
Name varchar(50) not null,
Address varchar(100),
Phone_number varchar(15),
primary key (Client_id)
);


CREATE TABLE Services (
Service_id int not null auto_increment,
Name_services varchar(65) not null,
Cost float not null,
primary key (Service_id)
);


CREATE TABLE Staff (
Staff_id int not null auto_increment,
Name varchar(50) not null,
Post varchar(25) not null,
Salary integer not null,
Department varchar(25) not null,
Address varchar(100),
Passport integer not null,
Date_of_birth date not null,
Phone_number varchar(15),
E_mail varchar(50),
primary key (Staff_id)
);
...
Рейтинг: 0 / 0
Никак не пойму как сделать связь между таблицами!
    #36940396
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GaTTaCa_89iНужно чтобы таблица Clients имела связь с таблицой Services, а также Clients с Staff, как это сделать?

Это нельзя сделать, так как СУБД, которую Вы используете, никаких связей не поддерживает. Вам нужно описать ограничения целостности с помощью так называемых "внешних ключей". "Целостность сущностей" Вы уже описали с помощью "первичных ключей". Теперь опишите "ссылочную целостность" с помощью "внешних ключей".
...
Рейтинг: 0 / 0
Никак не пойму как сделать связь между таблицами!
    #36940407
GaTTaCa_89i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин а как это сделать, пожалуйста помогите, я вот так сделал таблицу Clients с Service

foreign key (Client_id) references Service (Service_id)

Это правильно?
...
Рейтинг: 0 / 0
Никак не пойму как сделать связь между таблицами!
    #36940411
GaTTaCa_89i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бредятина,

А разве нет связей между клиентами и услугами?
...
Рейтинг: 0 / 0
Никак не пойму как сделать связь между таблицами!
    #36940427
GaTTaCa_89i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВОТ ТАК ПРАВИЛЬНО?
CREATE TABLE Staff (
Staff_id int not null auto_increment,
Name varchar(50) not null,
Post varchar(25) not null,
Salary integer not null,
Department varchar(25) not null,
Address varchar(100),
Passport integer not null,
Date_of_birth date not null,
Phone_number varchar(15),
E_mail varchar(50),
Service_id int not null,
primary key (Staff_id)
);

2]

CREATE TABLE Service (
Service_id int not null auto_increment,
Name_services varchar(65) not null,
Cost float not null,
Client_id int not null,
primary key (Service_id)
);

3]

CREATE TABLE Clients (
Client_id int not null auto_increment,
Name varchar(50) not null,
Address varchar(100),
Phone_number varchar(15),
primary key (Client_id),
foreign key (Client_id) references Service (Service_id)
);
...
Рейтинг: 0 / 0
Никак не пойму как сделать связь между таблицами!
    #36940486
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GaTTaCa_89iБлин а как это сделать, пожалуйста помогите, я вот так сделал таблицу Clients с Service
foreign key (Client_id) references Service (Service_id)
Это правильно?
Это Вам никто не скажет, так как неизвестна концептуальная модель:)
...
Рейтинг: 0 / 0
Никак не пойму как сделать связь между таблицами!
    #36940489
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GaTTaCa_89i
А разве нет связей между клиентами и услугами?
Связь, вероятно, есть. Только в той СУБД, которую Вы используете, связи не поддерживаются.
...
Рейтинг: 0 / 0
Никак не пойму как сделать связь между таблицами!
    #36940498
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GaTTaCa_89iВОТ ТАК ПРАВИЛЬНО?
...

См. выше насчет "правильно". Но то, что вы написали, ясно показывает, что потом Вы будете писать еще и приложение, и будете метаданные на русском языке хранить в этом приложении. Это, в добавок к отсутствию поддержки связей, говорит о бесперспективности технологии, которую Вы используете. И это значительно важнее, чем умение описывать "ограничения целостности:)
...
Рейтинг: 0 / 0
Никак не пойму как сделать связь между таблицами!
    #36955024
Tolka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GaTTaCa_89iНужно чтобы таблица Clients имела связь с таблицой Services, а также Clients с Staff, как это сделать?



о бизнес модели я могу только догадываться, но если исходить из того, что Клиент может иметь несколько Сервисов и при этом Клиент закреплён за конкретным Сотрудником из штата, то выглядеть будет приблизительно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
//связь Клиента с Сотрудником
CREATE TABLE Clients (
Client_id        int not null auto_increment,
Name             varchar( 50 ) not null,
Address          varchar( 100 ),
Phone_number     varchar( 15 ),
Staff_id         int,
primary key (Client_id),
foreign key(Staff_id) references Staff(Staff_id)
);

//принимается, что таблица Services - это словарь. Поэтому, нужна новая таблица связей
CREATE TABLE Client_Services (
cs_id              int not null auto_increment,
Client_id          int not null,
Service_id         int not null,
primary key(cs_id),
foreign key(Client_id) references Clients(Client_id),
foreign key(Service_id) references Services(Service_id)
);

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


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