SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Microsoft SQL Server » SQL server база данных (Проблема с темой первичных и внешних ключей)
SQL server база данных [сообщение #1584] Fri, 10 February 2023 12:55 Переход к следующему сообщению
Rinat25178 в настоящее время не в онлайне  Rinat25178
Сообщений: 4
Зарегистрирован: February 2023
Junior Member
Добрый день, у меня проблема я создаю базу данных для портфолио и хочу сделать это так что бы это выглядело нормально и адекватно, моя проблема заключается в том что сослаться на таблицу необходимо ссылаться на первичный ключ или уникальность но уникальность не могу использовать так как в следующей таблице у меня будет ругаться я смогу использовать значение только один раз. Например у меня есть ад должности который должен быть ключём и название должности которое мне надо будет отдать в таблицу для того что бы указать кто этот человек, но я не могу задать ему айди так как SQL ругается на инт с датой (несовместимость), вопрос такой будет ли целесообразно создать две таблицы с одним столбцом чтобы задать первичный ключ на должность и ещё на кое что мне надо подскажите пожалуйста.
Re: SQL server база данных [сообщение #1585 является ответом на сообщение #1584] Fri, 10 February 2023 15:01 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 795
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
покажи скрипт DDL этих таблиц.
а то не очень понятно.
Re: SQL server база данных [сообщение #1586 является ответом на сообщение #1585] Fri, 10 February 2023 15:44 Переход к предыдущему сообщениюПереход к следующему сообщению
Rinat25178 в настоящее время не в онлайне  Rinat25178
Сообщений: 4
Зарегистрирован: February 2023
Junior Member
Мне с таблицы надо чтобы профессии совпадали, но если я поставлю Unique я не смогу повторять там не один матрос будет, то же самое и с moneycode мне нужно именно чтобы я мог ссылаться в будущем на них и не один раз, а такую возможность только первичный ключ даёт:( я так понимаю
Re: SQL server база данных [сообщение #1587 является ответом на сообщение #1586] Fri, 10 February 2023 15:46 Переход к предыдущему сообщениюПереход к следующему сообщению
Rinat25178 в настоящее время не в онлайне  Rinat25178
Сообщений: 4
Зарегистрирован: February 2023
Junior Member
И да проблема с датой рождения тоже не закрывается, но теоретически я мог бы присвоить им айди в другой таблице а эту с днями рождения создать без INTa
Re: SQL server база данных [сообщение #1589 является ответом на сообщение #1587] Fri, 10 February 2023 17:20 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 290
Зарегистрирован: June 2022
Senior Member
Тут бы по теории бд что-то почитать.
Если вкратце:
1. Есть таблица Users (ID, Name). Вот в ней ID должен быть уникален.
2. Делаем таблицу Phones (ID, UserID, PhoneNumber). В ней ID тоже уникален, но это ее ID, а к пользователю она привязывается через поле UserID. И этот UserID в таблице Phones уже не уникален. Это просто внешний ключ на таблицу Users.
А для избежания дублирования телефонов у одного юзера можно сделать уникальный индекс по полям UserID, PhoneNumber.

[Обновления: Fri, 10 February 2023 18:59]

Известить модератора

Re: SQL server база данных [сообщение #1591 является ответом на сообщение #1589] Fri, 10 February 2023 19:33 Переход к предыдущему сообщениюПереход к следующему сообщению
Rinat25178 в настоящее время не в онлайне  Rinat25178
Сообщений: 4
Зарегистрирован: February 2023
Junior Member
BlackEric писал(а) Fri, 10 February 2023 17:20
Тут бы по теории бд что-то почитать.
Если вкратце:
1. Есть таблица Users (ID, Name). Вот в ней ID должен быть уникален.
2. Делаем таблицу Phones (ID, UserID, PhoneNumber). В ней ID тоже уникален, но это ее ID, а к пользователю она привязывается через поле UserID. И этот UserID в таблице Phones уже не уникален. Это просто внешний ключ на таблицу Users.
А для избежания дублирования телефонов у одного юзера можно сделать уникальный индекс по полям UserID, PhoneNumber.


Что почитать посоветуете
Re: SQL server база данных [сообщение #1593 является ответом на сообщение #1591] Fri, 10 February 2023 21:01 Переход к предыдущему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 290
Зарегистрирован: June 2022
Senior Member
Давид Кренке: Теория и практика построения баз данных. - 9-е изд.
Предыдущая тема: Получение в переменную выходных данных из инструкции EXEC
Следующая тема: Linked Server к IBM DB2 и транзакции
Переход к форуму:
  


Текущее время: Fri Apr 19 04:36:35 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00963 секунд