Связи между таблицами. SQL Server
Подскажите, правильно ли я начинаю выстраивать БД: пока есть 3 таблицы: dbo.Exam , dbo.Offset , dbo.Session . У экзамена и зачета схожая структура: id name date . Структура dbo.Session : id fromDate toDate . Сессия одна, но у нее может быть несколько зачетов и экзаменов. Как я предполагаю, мне нужно сделать связь Многие ко многим. Поэтому делаю следующее:
create table dbo.StudentSession ( SessionId int foreign key references dbo.Session(Id), ExamId int foreign key references dbo.Exam(Id), OffsetId int foreign key references dbo.Offset(Id), constraint id primary key(SessionId, ExamId, OffsetId) )
P.s как я потом могу ссылаться на id dbo.StudentSession из других таблиц?
Отслеживать
задан 5 мая 2020 в 23:28
373 1 1 серебряный знак 12 12 бронзовых знаков
Почему экзамен и зачёт — это РАЗНЫЕ сущности? ведь это одна сущность, просто атрибуты немного разные. и основной вопрос — в том, являются они самостоятельными сущностями, или атрибутами сущности предмет (который может иметь мультиатрибут Контроль с атрибутом Тип со значениями Зачёт, Проект, Экзамен, . ). Именно от последнего факта и пляшет схема. А то, что есть сейчас — прямой путь на поле с граблями имхо.
6 мая 2020 в 5:47
@Akina делалось 2 сущности с расчетом на масштабируемость по отношению к зачетам и экзаменам(в случае необходимости добавление каких-либо доп. атрибутов и т.д.) и,конечно,нормализацю.
Как создать связь между двумя таблицами из разных баз данных?
Здравствуйте, Друзья
У меня есть вопрос: как создать связь (отношения) между двумя таблицами из разных баз данных?
Например:
Даны две БД: db1 и db2. В каждой из них есть таблицы: tb1 в db1 и tb2 в db2
Как создать связь (отношения) в SQL Server между этими двумя таблицами?
На MySQL это легко сделать, а вот на SQL Server.
Помогите, пожалуйста
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Связь между таблицами из разных баз
Добрый день. Нахожусь на этапе разработки. Изначально была одна база. Сейчас ощутил проблему.
Как создать связь между двумя таблицами
Я создала две таблицы в Database Desktop, но не могу их связать один-ко-многим. Кто может объяснить.
Как создать связь между двумя таблицами?
Ребят кто может подкинуть код который работает с двумя базами Access для проекта WindowsForm.

Как создать связь между таблицами с обеспечение целостности данных?
1. Как создать связь между таблицами с обеспечение целостности данных? 2. Создать запрос, который.
1630 / 1045 / 393
Регистрация: 31.05.2012
Сообщений: 3,674
ни как. а как в мускуле это легко сделать?
5314 / 4251 / 1049
Регистрация: 29.08.2013
Сообщений: 26,764
Записей в блоге: 3
Аватар, а если создать связанный сервер, на него сделать вьюху и ее соединить с таблицей?
1630 / 1045 / 393
Регистрация: 31.05.2012
Сообщений: 3,674
Связи FOREIGN KEY только на таблицы той же базы и ни каких вьюх. Ссылочную целостность между таблицами разных баз можно организовать в триггераХ. JOIN-ы же в запросах можно не только с таблицами других баз, но и других серверов
3548 / 2165 / 685
Регистрация: 29.05.2013
Сообщений: 9,265
Сообщение от MichaelShestak 
как создать связь (отношения) между двумя таблицами из разных баз данных?
А в чем проблема? Указываешь имя базы и все:
select T1.* from DB1..Table1 T1 inner join DB2..Table1 T2 on T1.id=T2.id
Регистрация: 27.05.2021
Сообщений: 3
А разве это не запрос выборки?
Добавлено через 3 минуты
Я не умею работать с триггерами
Тем более мне надо связать между собой таблицы, определенными объектами (индекс и все такое).
Если вам не сложно, можете примерный код написать, пожалуйста?
Был бы премного благодарен
3548 / 2165 / 685
Регистрация: 29.05.2013
Сообщений: 9,265
Сообщение от MichaelShestak 
А разве это не запрос выборки?
Да это запрос на получение данных их разных баз данных связанных по ключу.
Вы же сами пишете:
Даны две БД: db1 и db2. В каждой из них есть таблицы: tb1 в db1 и tb2 в db2
Как создать связь (отношения) в SQL Server между этими двумя таблицами?
Это запрос полностью соответствует поставленной задаче.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как правильно создать хитрую связь между таблицами в другой базе данных?
Добрый день всем. Всю ситуацию в целом изобразил на рисунке ниже. Сейчас поясню детали. Итак.
Связь между двумя таблицами
По работе приходится изучать SQL сервер. С запросами SQL разобрался более или менее, сейчас изучаю.

Связь между двумя таблицами
Добрый день! Я новичок, поэтому не судите строго. Суть такова: у меня программа с базой данных.
Связь между двумя таблицами
К превеликому сожалению, человек, который должен был заниматься этим делом, ушел в отпуск и.
Связь между двумя таблицами
Есть 2 таблички. В одной из них ключевое поле ID. Во второй этот ID может быть в двух полях.
Связь между двумя таблицами. SQL
Существует две таблицы для гостевой книги. Одна собственно для формы отправки сообщения,другая.
ВИДЕОУРОК №9. Как создать связи между таблицами с помощью PK и FK в SQL Server 2014?
В первом видео уроке будет рассмотрено создание базы данных и таблицы в SQL Server 2014. Демонстрация процесса создания будет сопровождаться комментариями, которые дадут исчерпывающую информацию обо всех действиях, совершаемых автором.
Читать дальше.
Как использовать оператор вставки INSERT в SQL Server 2014?
На этом видеоуроке разбирали работу оператора вставки INSERT, приведено немного примеров вставки данных в таблицу. INSERT INTO – это ключевые слова, что служат для внесения данных в таблицу. Указывать INTO не обязательно, можно записать только INSERT. После этих ключевых слов задается название таблицы, чтобы определить, куда будут внесены данные. Далее перечисляем порядок, согласно которому данные будут внесены в таблицу, но это также не обязательно, тогда данные будут вноситься согласно тому, в каком порядке они были созданы. И также необходимо указать ключевое слово VALUES, после которого перечисляем все данные, что будут занесены в таблицу.
Читать дальше.
Выборка данных. Как использовать запрос SELECT и конструкции WHERE в SQL Server 2014?
В этом видеоуроке рассмотрено применение оператора SELECT, осуществлена выборка данных из таблицы. Также рассмотрено применение оператора SELECT для выборки данных по определенным условиям, которые были заданы с помощью конструкции WHERE. Ключевое слово SELECT применяется для выборки данных. Выборку можно сделать как по одному столбцу или по нескольким столбцам, указав при этом название столбца или столбцов, так и выборку всех данных, указав звездочку (*). FROM – ключевое слово, после которого указывают, из какой таблицы выполняется выборка. Также можно указать условия для выборки данных, используя ключевого слова WHERE.
Читать дальше.
Как использовать оператор UPDATE и DELETE в SQL Server 2014?
В этом уроке рассмотрено обновление данных в таблице с помощью оператора UPDATE, а также удаление данных из нее с использованием оператора DELETE. Ключевое слово UPDATE служит для обновления данных. После UPDATE нужно указать название таблицы, в которой будут изменения. Далее используют SET, после которого необходимо записать название столбца или столбцов, в которых будут происходить изменения и записать данные через равно (=), какие данные мы вносим. И еще можно указать, чтобы изменения происходили только в определенных записях. Для этого нужно внести условие после ключевого слова WHERE. DELETE служит для удаления данных из таблицы. DELETE, далее указываем таблицу, в которой будут удаленны данные, или указать условие с помощью ключевого слова WHERE, и тем самым удалить только какую-то запись.
Читать дальше.
Удаление базы данных, создание базы данных и ее изменение в SQL Server
В этом уроке рассмотрено, как удалить базу данных, создать базу и в созданной базе данных проводить изменения с помощью оператора ALTER DATABASE. DROP DATABASE и название БД, с помощью этой команды можно удалить базу данных. Чтобы создать БД, необходимо использовать ключевое слово CREATE DATABASE. Также необходимо указать параметры для файла БД и файла журнала БД после ключевых слов ON и LOG ON соответственно. Это такие параметры, как: логическое имя файла БД/журнала БД (Name), начальный размер файла БД/журнала БД (SIZE), максимальный размер файла БД/журнала БД (MAXSIZE) и значение, на которое будет увеличиваться файла БД/журнала БД(FILEGROWHT). ALTER DATABASE и название БД, с помощью этой команды происходит измененные параметров базы данных. Используем ключевые слова MODIFY FILE, после которых указываются параметры и значения, которые будут изменяться.
Читать дальше.
Как использовать INNER, LEFT, RIGHT, FULL, CROSS JOIN в SQL Server 2014?
В этом видеоуроке рассмотрено, как создавать различные виды связей между таблицами с помощью INNER, LEFT, RIGHT, FULL, CROSS JOIN. Используя ключевые слова INNER JOIN производим объединение таблиц и при этом порядок таблиц указывать не обязательно, потому что далее необходимо указать после ключевого слова ON столбцы, по которым будет осуществляется связь. Когда столбец с одной таблицы будет равняться столбцу с другой таблицы, записи будут добавлены в таблицу результат. LEFT JOIN – это также объединение двух таблиц, только в этом случае обязательное условие, чтобы все данные из левой таблицы должны быть добавлены в результат, и если в правой таблице нет данных, которые связаны с данными из левой таблицы, они будут заменены на NULL, также и для RIGTH JOIN, только условие, чтобы все данные из правой таблицы находились в результате. FULL JOIN – объединение двух таблиц, обязательное условие, чтобы все данные из правой и из левой таблицы находились в результате, значения, которые не связанны будут заменены на NULL. CROSS JOIN – это перекрестное объединение, все данные из первой таблицы будут связанны со всеми данными из второй таблицы.
Как сделать связи между таблицами в sql server
При создании таблицы-справочника его данные будут взяты из таблицы. Процесс создания такого справочника состоит из нескольких этапов:
- Импортировать таблицу с данными в Zulu.
- Добавить импортированную таблицу в редактор базы данных.
- Создать и настроить таблицу-справочник.
1 этап — импорт таблицы с данными в ZuluGIS
Имеется возможность импортировать таблицы из текстовых файлов (.txt, .csv), книг Excel, баз данных SQLite, Microsoft Access, Microsoft SQL Server. Также таблицы можно импортировать из других описателей баз данных ZuluGIS.
Таблицу удобней импортировать через редактор базы данных. Подробно о импорте таблиц каждого формата можно узнать в разделе «Импорт таблицы».
2 этап — добавление импортированной таблицы в редактор базы данных

- В редакторе баз данных нажать кнопку Таблицы .
- Сделать щелчок правой кнопкой мыши в зоне расположения таблиц. В появившемся контекстном меню выбрать пункт Добавить , выбрать импортированную на предыдущем этапе таблицу и нажать кнопку Открыть .
3 этап — создание и настройка таблицы-справочника
- В редакторе баз данных нажать кнопку
Справочники . - Нажать кнопку
Создать. . - В диалоговом окне Новый справочник щелчком левой кнопки мыши указать тип справочника — Таблица-справочник , нажать кнопку ОК .
- В появившемся окне выбора таблиц указать таблицу, значения которой будут браться для справочника, нажать кнопку Выбрать .
- В окне настройки справочника необходимо указать поле связи. Для этого надо нажать кнопку Выбор. , и в открывшемся списке полей таблицы выбрать поле по которому будет осуществлена связь между таблицами, нажать кнопку ОК . Если списка полей не видно, то надо щелкнуть левой кнопкой мыши по «+» рядом с названием таблицы.
- Если в импортированной таблице поля задавались латинскими буквами, то лучше задать пользовательские поля полей запроса, их можно задать в столбце Название .
- В том случае, когда в таблице больше двух столбцов, то из списка поле-заголовок необходимо выбрать столбец, из которого будут браться данные. Если поле не выбрано, то по умолчанию данные будут взяты из первого по порядку столбца импортируемой таблицы.

Рисунок 541. Окно Справочник

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