当前位置: 代码迷 >> Sql Server >> SQL数据库,创建表的有关问题,非常着
  详细解决方案

SQL数据库,创建表的有关问题,非常着

热度:69   发布时间:2016-04-24 09:51:36.0
SQL数据库,创建表的问题,非常着急
主表TestOne
{
       [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        [Display(Name = "测试ID")]
        public int DocEntry { get; set; }
}

它的子表TestOneLine
{
        [Key]
        [System.ComponentModel.DataAnnotations.Schema.Column(Order = 1)]
        [DisplayName("测试ID")]
        public int DocEntry { get; set; }

        [JsonIgnore]
        [ForeignKey("DocEntry")]
        [ModelField(Persist = false)]
        public TestOne TestOne { get; set; }

        [Key]
        [System.ComponentModel.DataAnnotations.Schema.Column(Order = 2)]
        [DisplayName("行号")]
        public int LineNum { get; set; }
}

那TestOneLine的子表该怎么创建啊?里面的主键该怎么和上面的表进行关联啊?
------解决思路----------------------
不知道你表中字段的数据类型是什么,另这3张表通过什么来关联的。下面的sql只是一个例子。

create table TestOne(
DocEntry int,
Memo varchar(50),
constraint PK_Testone primary key(DocEntry)
)
create table TestOneLine
(
DocEntry int,
LineNum int,
LineMemo varchar(50)
constraint PK_TestOneLine primary key(DocEntry)
)
create table TestOneLine1
(
DocEntry int,
LineNum int,
LineNum1 int,
LineMemo varchar(50)
)
alter table TestOneLine add constraint FK_TestOneLine foreign key(DocEntry) references TestOne(DocEntry)
alter table TestOneLine1 add constraint FK_TestOneLine1 foreign key(DocEntry) references TestOneLine(DocEntry)

------解决思路----------------------
试一下下面的sql

create table TestOne

DocEntry int, 
Memo nvarchar(50), 
constraint PK_Testone primary key(DocEntry) 

create table TestOneLine 

DocEntry int, 
LineNum int, 
LineMemo nvarchar(50), 
constraint PK_TestOneLine primary key(DocEntry,LineNum)

create table TestOneLine1 

DocEntry int, 
LineNum int, 
LineNum1 int, 
LineMemo nvarchar(50) 

alter table TestOneLine add constraint FK_TestOneLine foreign key(DocEntry) references TestOne(DocEntry) 
alter table TestOneLine1 add constraint FK_TestOneLine1 foreign key(DocEntry,LineNum) references TestOneLine(DocEntry,LineNum)

insert into TestOne values(1,'备注')

insert into TestOneLine values(1,0,'备注1') 
insert into TestOneLine values(1,1,'备注2') 
insert into TestOneLine values(1,2,'备注3') 

insert into TestOneLine1 values(1,0,0,'备注1') 
insert into TestOneLine1 values(1,0,1,'备注2') 
insert into TestOneLine1 values(1,0,2,'备注3') 
insert into TestOneLine1 values(1,1,0,'备注4') 
insert into TestOneLine1 values(1,1,1,'备注5') 
insert into TestOneLine1 values(1,2,0,'备注6') 
  相关解决方案