2016-10-11 26 views
0

ベストプラクティスを知りたいと思います。 私は、委員の主キーがAPPLICATIONIDを含む複合キーである アプリケーションEmpInternalEmpExternal、テーブル委員会を持ってEmpInternalIDEmpExternalIDNullを許可する列を持つ複合主キー

今や、AllowNullプロパティは複合キーの列で真ではありません。私は委員会の委員会の委員に、時には社内外に保管するために何をすべきですか?すべての列APPLICATIONIDEmpInternalIDEmpExternalID従業員表に

CREATE TABLE [dbo].[Employee](
[EmployeeID] [varchar](10) NOT NULL,  
[UserID] [varchar](100) NULL, 
[Title] [varchar](50) NULL, 
[Name] [nvarchar](240) NULL, 
[Rank] [varchar](150) NULL, 
[Department] [varchar](240) NULL, 
[College] [varchar](240) NULL, 
[POBox] [varchar](120) NULL, 
[Phone] [varchar](60) NULL, 
[JoinDate] [varchar](200) NULL, 
CONSTRAINT [PK_Employee1] PRIMARY KEY CLUSTERED 
(
[EmployeeID] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) 

CREATE TABLE [dbo].[EmployeeExternal](
[EmployeeExID] [varchar](10) NOT NULL, 
[Title] [nvarchar](50) NULL, 
[Name] [nvarchar](50) NULL, 
[Rank] [nvarchar](50) NULL, 
[Department] [nvarchar](4000) NULL, 
[Organization] [nvarchar](4000) NULL, 
[Address] [nvarchar](4000) NULL, 
[Email] [nvarchar](50) NULL, 
[Email2] [nvarchar](50) NULL, 
[Phone] [nvarchar](50) NULL, 
[Mobile] [nvarchar](50) NULL, 
[Country] [nvarchar](50) NULL, 
CONSTRAINT [PK_Employee1] PRIMARY KEY CLUSTERED 
    ([EmployeeExID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,  ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) 
+0

理想的な解決策は、外部従業員と内部社員をマージし、次に1つのEmployeeIDを使用することです。しかし、私はこれら2つのテーブルの違いを正確にはわかりません。私たちと共有することはできますか? –

+0

2つのテーブルをマージすることは、テーブルがかなり異なるので、良い解決策ではないようです。 – shomaail

+0

テーブル定義も提供する必要があります。単純に構造を推測することはできません –

答えて

0

、それぞれのテーブルにフラグレコードオートナンバーであり、EmployeeExternalの表では、これらをマージより良いソリューションです2つのテーブル。コンポジット・キーのフラグ付きレコードのキーはコンポジット・キー内のnullの使用を取り除きます

関連する問題