Я знаю, что эти вопросы задавались и отвечали несколько раз на всех этих форумах и в Интернете, но я изо всех сил пытаюсь обвести вокруг него голову. У меня возникли проблемы с пониманием того, как отношения работают с первичными и внешними ключами в базе данных SQL. Скажем, у меня есть таблица, называемая «Сотрудники» с ключевым ключом с именем «employeeID», а затем другое имя таблицы «Адреса» с основным ключом с именем «addressID». Я бы создал внешний ключ в таблице «Адреса», называемый «employeeID», а затем создал правильна ли связь между таблицей Employees и таблицей адресов?SQL Database Relationships & VB.Net Application
У меня есть база данных, в которой есть сотрудники, адреса, контакты экстренной помощи и т. Д. ..., где из того, что я прочитал и понял из разных источников, создается правильно. Поэтому в моем приложении vb.net с использованием Azure SQL DB я пытаюсь отобразить в datagridview слова сотрудников и их адреса. Очевидно, что datagridview может отображать информацию только из одной таблицы за раз, поэтому я попытался создать новый набор данных, который бы собирал информацию из двух таблиц и отображал ее как один в представлении gatagrid. Когда представление datagrid отображает эту информацию, все смешано, и отношения не соблюдаются. Для каждой записи в таблице employee она перечисляет каждую запись для каждого человека три раза в таблице адресов.
Вот копия кода для Dataset я использую:
Dim connectionstring As String = My.Settings.MacroQualityConnectionString
Dim sqlemp As String = "SELECT * FROM Employee_Names, Addresses"
Dim connection As New SqlConnection(connectionstring)
Dim dataadapter As New SqlDataAdapter(sqlemp, connection)
connection.Open()
dataadapter.Fill(dsemployees, "Employee_Names")
connection.Close()
DataGridView1.DataSource = dsemployees.Tables(0)
Я знаю, это, вероятно, не правильно, но я не уверен, как сделать приложение чтить отношения в базе данных ? В конце концов, мне нужно собрать информацию из нескольких таблиц, чтобы ее можно было правильно отобразить в datagridview, но, к сожалению, мои умения SQL довольно слабы в большинстве моих других навыков! Может быть, большая часть моей проблемы связана с дизайном и настройкой моей БД? Любой вход очень ценится всеми, поскольку я боролся с этим в течение нескольких недель! :(
Спасибо всем заранее
Почему вы используете Cross Join in Select Statement, а не внутреннее соединение ??????? –
Я поставил под вопрос этот вопрос, так как ему лучше в другом месте, так как он спрашивает об отношениях на сервере. – Codexer
Большинство этих таблиц похоже, что они должны быть столбцами на таблице Emp. У сотрудника есть адрес, телефон и т. Д., Поэтому столбцы являются своего рода свойствами. Там, где могут возникнуть отношения PK/FK, есть «Департамент», а Emp принадлежит отделу, а отдел может иметь много emps. Тогда у Emp был бы FK в таблице Dept (не наоборот) – Plutonix