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



вот есть такая база. между таблицами "договор" и "пользователи" - связь один ко многим, между таблицами "пользователи" и "сертификаты" тоже связь один ко многим. Таблицу "пользователи" я создал, там получился составной первичный ключ (id_user,id_dogovora) при этом id_dogovora еще и внешний ключ. верно я рассуждаю?

не могу создать таблицу "certs". как я понимаю что там первичный ключ будет состоять аж из 3х значений. но пока даже такой запрос выдает ошибку.

Create table Certs (ID_cert number(3) primary key,
ID_USER number(4), constraint ID_User foreign key (ID_USER) references POLZOVATELI (ID_USER));



Error starting at line 1 in command:
Create table Certs (ID_cert number(3) primary key,
ID_USER number(4), constraint ID_User foreign key (ID_USER) references POLZOVATELI (ID_USER))
Error at Command Line:2 Column:84
Error report:
SQL Error: ORA-02270: no matching unique or primary key for this column-list
02270. 00000 - "no matching unique or primary key for this column-list"
*Cause: A REFERENCES clause in a CREATE/ALTER TABLE statement
gives a column-list for which there is no matching unique or primary
key constraint in the referenced table.
*Action: Find the correct column names using the ALL_CONS_COLUMNS
catalog view


так я и не понял в чем ошибка и что надо сделать.. помогите полностью создать таблицу "certs", пожалуйста.
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37164854
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам черным по белому пишут создайте уникальность на таблице POLZOVATELI поле D_USER
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37164894
Boatsman1488
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257, ну а как же то что в таблице Polzovateli ID_user и ID_dogovora - это составной первичный ключ? или я что то неправильно понимаю?
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37164931
Фотография Светлый_Дайвер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Boatsman1488SERG1257, ну а как же то что в таблице Polzovateli ID_user и ID_dogovora - это составной первичный ключ? или я что то неправильно понимаю?

Совершено верно - составной
и ссылаться соответственно составом нужно =)
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37164981
Boatsman1488
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Светлый_Дайвер, можно поподробнее как в данном случае ссылаться составом?
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37164997
Boatsman1488
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот запрос на создание таблицы

Create table Polzovateli (ID_User number(4),
ID_dogovora number(3), primary key (ID_User, ID_dogovora), constraint ID_dogovora foreign key (ID_dogovora) references Dogovor (ID_dogovora),
Last_name varchar2(15), First_name varchar2(10), Mid_name varchar2(15), Dolzhnost varchar2(30), Email varchar2(30));


создалась таблица с составным PK

теперь надо таблицу Certs привязать к таблице Polzovateli. Исходя из того что мне выдал ЕрВин, при связи один ко многим, в таблице Certs будет PK состоять из ID_certs, ID_User, ID_dogovora. А связать не получается..
помогите, пожалуйста, разобраться что к чему!
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37165009
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Boatsman1488,

а зачем в таблице пользователей составной первичный ключ? Для чего именно составной?
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37165020
Фотография Светлый_Дайвер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Boatsman1488Вот запрос на создание таблицы

Create table Polzovateli (ID_User number(4),
ID_dogovora number(3), primary key (ID_User, ID_dogovora), constraint ID_dogovora foreign key (ID_dogovora) references Dogovor (ID_dogovora),
Last_name varchar2(15), First_name varchar2(10), Mid_name varchar2(15), Dolzhnost varchar2(30), Email varchar2(30));


создалась таблица с составным PK

теперь надо таблицу Certs привязать к таблице Polzovateli. Исходя из того что мне выдал ЕрВин, при связи один ко многим, в таблице Certs будет PK состоять из ID_certs, ID_User, ID_dogovora. А связать не получается..
помогите, пожалуйста, разобраться что к чему!

Отличие между PK и FK понимаем?
Я не знаю зачем тебе составной первичный ключ на сертификатах, но скажу как привязать к Родителю (Пользователь) его Детей (много Сертификатов):
Код: plaintext
1.
2.
3.
alter table Certs 
   add constraint <FK_ИМЯ_НАРЕКИ> foreign key (ID_User, ID_dogovora)
      references Polzovateli (ID_User, ID_dogovora);
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37165030
Boatsman1488
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Воронцов, связь между таблицей договоры и пользователи один ко многим. то есть в одном договоре может быть несколько пользователей. В ЕрВине получается что id_user и id_dogovor - составной первичный ключ. разве не так?
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37165036
Фотография Светлый_Дайвер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Boatsman1488Павел Воронцов, связь между таблицей договоры и пользователи один ко многим. то есть в одном договоре может быть несколько пользователей. В ЕрВине получается что id_user и id_dogovor - составной первичный ключ. разве не так?

А может быть такое что у одного пользователя несколько договоров?=)
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37165044
Фотография Светлый_Дайвер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Светлый_ДайверBoatsman1488Павел Воронцов, связь между таблицей договоры и пользователи один ко многим. то есть в одном договоре может быть несколько пользователей. В ЕрВине получается что id_user и id_dogovor - составной первичный ключ. разве не так?

А может быть такое что у одного пользователя несколько договоров?=)

Как бы твой первичный составной ключ на это намекает, только нормализацию делать нужно.
Короче, рисуй все заново и не делай составных ключей.
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37165046
Boatsman1488
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Светлый_ДайверА может быть такое что у одного пользователя несколько договоров?=)

омг... вообще да.. получается что ID_dogovora просто как FK будет?
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37165056
Фотография Светлый_Дайвер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Boatsman1488Светлый_ДайверА может быть такое что у одного пользователя несколько договоров?=)

омг... вообще да.. получается что ID_dogovora просто как FK будет?
Ага, даже у тебя он уже есть.
А в таблице Cert вообще ID_dogovora не нужен.
Нужен только пользователь. Та и нужен ли при текущих раскладах первичный ключ вообще на Сертификатах я тож не уверен.
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37165115
Boatsman1488
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
получается вообще вот такая схема бд в ервине




в сертификатах связь один ко многим, у пользователя может быть много сертификатов, но у сертификата только один пользователь
все правильно получается по схеме?
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37165173
Фотография Светлый_Дайвер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Говорили балакали сiли тай заплакали (с)

Опять таки зачем составной первичный ключ на Cert?
Там PK вообще не нужен. Уникальный индекс - возможно, а первичный ключ на какой ляд, а?

А так всё нарядно - по-студенчески =))))
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37165218
Boatsman1488
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Светлый_Дайвер, а как тогда? сертификат определяется как по уникальному коду и принадлежит только одному пользователю...
запутался уже..
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37165606
Фотография Светлый_Дайвер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз: На Cert PK не нужно.
А так у тебя на последней схеме уже есть FK по User_Id.
...
Рейтинг: 0 / 0
Проблема с созданием таблицы
    #37166629
Boatsman1488
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем кто помогал =)
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проблема с созданием таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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