我正嘗試在各個公司創建聯繫人的聯繫人數據庫。聯繫人和企業將被存儲在數據庫中的兩個單獨的表中。我希望每個聯繫人都能連接到特定的公司。我是否應該將外鍵用於整個表格中的所有列,或者它是如何製作的?SQL外鍵關係
聯繫表具有以下屬性:
Firstname
Lastname
Email
Phone
和公司的表有:
Name
我不想再列!
我正嘗試在各個公司創建聯繫人的聯繫人數據庫。聯繫人和企業將被存儲在數據庫中的兩個單獨的表中。我希望每個聯繫人都能連接到特定的公司。我是否應該將外鍵用於整個表格中的所有列,或者它是如何製作的?SQL外鍵關係
聯繫表具有以下屬性:
Firstname
Lastname
Email
Phone
和公司的表有:
Name
我不想再列!
這太長了評論。爲了解決在FK應該如何看您的意見,這是你應找表結構:
Create Table Contact
(
Id Int Identity(1,1) Not Null Primary Key Clustered,
Firstname Varchar (20),
Lastname Varchar (20),
Email Varchar (50),
Phone Varchar (15),
CompanyId Int Not Null
)
Create Table Company
(
Id Int Identity(1,1) Not Null Primary Key Clustered,
Name Varchar (100)
)
Alter Table Contact
Add Constraint FK_Contact_Company
Foreign Key (CompanyId) References Company (Id)
你需要一個Identity
列添加到您的表作爲他們Primary Keys
。
接下來,您需要添加一個CompanyId
列到您的Contact
表中以保存關係。
最後,您需要創建實際的Foreign Key Constraint
。
你的數據類型肯定不同於我所猜測的,但這是你應該用於你的外鍵關係的概念。
如果你想要兩個表之間的關係,你將需要更多的列。 – Siyual
您需要更詳細地閱讀和了解數據標準化。當然,你沒有兩張表中的所有數據。這完全會打敗關係數據。您將在聯繫人表中創建一個公司ID,該公司ID將在公司表中具有對CompanyID的外鍵引用。 –
然後你擰了。如果不添加更多列,則無法添加該功能。如果聯繫人可以位於多個公司中,則首先需要在聯繫人表(例如ContactId)中有一個主鍵(PK)列。那麼,最好是添加另一個只有ContactId和CompanyName的表(作爲2列PK )。如果聯繫人只能在一個公司中,則需要將CompanyName添加到聯繫人表 –