私はデータベース設計に不慣れで、リレーショナルデータベースを作成する方法についていくつか質問があります。
いくつか質問があります。
接続Table A
しTable B
て外部キーを使用します。どこでキーを作成しますTable A
かB
?
私がテーブルUsers
をRanks
持っていて、1:1の関係にあるとしましょう。
Users
テーブル:
CREATE TABLE [dbo].[Users](
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[Email] [nvarchar](89) NOT NULL,
[Name] [nvarchar](25) NOT NULL,
[Midname] [nvarchar](25) NOT NULL,
[Surname] [nvarchar](25) NOT NULL,
[Phone] [varchar](15) NOT NULL,
[Country] [smallint] NOT NULL,
[Manager] [nvarchar](89) NOT NULL,
[Referrer] [nvarchar](89) NOT NULL,
[Rank] [tinyint] NOT NULL,
CONSTRAINT [PK_UsersID] PRIMARY KEY CLUSTERED
([Email] ASC)
)
Ranks
テーブル:
CREATE TABLE [dbo].[Ranks](
[ID] [tinyint] IDENTITY(1,1) NOT NULL,
[Rank] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_Rank] PRIMARY KEY CLUSTERED
([ID] ASC)
)
私はそれらに参加したい:
Users.Rank ON Rank.ID
しかし、キーを作成することはできません。次のようなエラーが発生します。
Microsoft SQL Server Management Studio
テーブル'Users'の列が、既存の主キーまたはUNIQUE制約と一致しません。
なぜ主キーについて教えてくれるのですか?外部キーを使用しているプライマリに触れていません。PKとFKが関連している理由がわかりません。
私が間違っていることを説明していただけますか?
ありがとう!