我们将用到三张表:User,Blog和Post。我们使用的数据库为test.你可以下面的表结构,也可以让AcriveRecord 生成结构:
正如你所见到的,User表和其他标没有任何关联。它只是用来控制对应用程序的访问。同时Blog表和Post表示关联的。一个blog可以后多个post,因此关联就是:blog是一对多而post是多对一。
CREATE TABLE Blog
(
[Id] [int] IDENTITY (1, 1) NOT NULL,
[Name] [varchar] (25) NOT NULL,
[Author] [varchar] (25) NOT NULL
) ON [PRIMARY]
CREATE TABLE Post
(
[Id] [int] IDENTITY (1, 1) NOT NULL,
[BlogId] [int] NOT NULL,
[Title] [varchar] (100) NOT NULL,
[Contents] [text] NOT NULL,
[Category] [varchar] (25) NULL,
[Created] [datetime] NOT NULL,
[Published] [bit] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
CREATE TABLE User (
[Id] [int] IDENTITY (1, 1) NOT NULL,
[UserName] [varchar] (25) NOT NULL,
[Password] [varchar] (15) NOT NULL
) ON [PRIMARY]
ALTER TABLE Blog WITH NOCHECK ADD
CONSTRAINT [PK_Blog] PRIMARY KEY CLUSTERED ( [Id] ) ON [PRIMARY]
ALTER TABLE Post WITH NOCHECK ADD
CONSTRAINT [PK_Post] PRIMARY KEY CLUSTERED ( [Id] ) ON [PRIMARY]
ALTER TABLE User WITH NOCHECK ADD
CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED ( [Id] ) ON [PRIMARY]