私はデータベース設計に不慣れで、リレーショナルデータベースを作成する方法についていくつか質問があります。
いくつか質問があります。
接続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が関連している理由がわかりません。
私が間違っていることを説明していただけますか?
ありがとう!
。![enthan ダイアログを見て、[OK] をクリックします :)e](https://i.stack.imgur.com/yyCuV.png)