一个发布系统的 SQL 数据库表中,字段如何建立主外键关系。 请大神指点。
新闻系统表(News)1.标题(N_Table)nvarchar(20)notnull2.发布日期(N_Datetime)datetimenotnull3.内容(N_Co...
新闻系统表(News)
1.标题(N_Table) nvarchar(20) not null
2.发布日期(N_Datetime) datetime not null
3.内容(N_Content) nvarchar(255)not null
4.发布者(N_Publisher) nvarchar(10) not null
5.发布人ID(N_Id) int not null
6.来源(N_Source) nvarchar(20) not null
7.简介(N_Synopses) nvarchar(20) not null
9.分类(属于新闻,还是图片,还是视频)(N_Classify) nvarchar(20) not null
10.权限() int 0代表游客 1代表普通用户 2代表管理员
11.图片 (N_Pic) image null
视频表(Video)
1.标题(V_Table) nvarchar(20) not null
2.发布日期(V_Datetime) datetime not null
4.发布者(V_Publisher) nvarchar(10) not null
5.发布人ID(V_Id) int not null
6.来源(V_Source) nvarchar(20) not null
7.简介(V_Synopses) nvarchar(20) not null
8.视频上传地址(V_FileAddress) nvarchar(50) null
11.视频链接地址(V_Path) nvarchar(50) null
9.分类(属于新闻,还是图片,还是视频)(V_Classify) nvarchar(20) not null
10.权限(V_Root) int 0代表游客 1代表普通用户 2代表管理员
图片表(Pic)
1.标题(N_Table) nvarchar(20) not null
2.发布日期(N_Datetime) datetime not null
4.发布者(N_Publisher) nvarchar(10) not null
5.发布人ID(N_Id) int not null
6.来源(N_Source) nvarchar(20) not null
7.简介(N_Synopses) nvarchar(20) not null
8.文件上传地址(N_FileAddress) nvarchar(50) null
9.分类(属于新闻,还是图片,还是视频)(N_Classify) nvarchar(20) not null
10.权限() int 0代表游客 1代表普通用户 2代表管理员
角色表(User)
1.用户ID (ID) 主键
2.用户名(U_Name)
3.密码(U_Pass)
4.权限()
权限表()
1.....
2...
3....
打算做一个发布系统,ASP.NET的,后台可以添加新闻,图片,视频, 前台就会显示。
上面我列的几个字段, 我不知道该如何建立主外键关系, 也不知道建表建立的对不对。
麻烦各位大神,帮看看, 给予指点
比如说 视频 栏目, 点击进入后 就会列出所有 视频的信息,
图片 ,新闻同上,
我是不知道在哪个表中建立主键, 哪个表中字段建立外键,啊 展开
1.标题(N_Table) nvarchar(20) not null
2.发布日期(N_Datetime) datetime not null
3.内容(N_Content) nvarchar(255)not null
4.发布者(N_Publisher) nvarchar(10) not null
5.发布人ID(N_Id) int not null
6.来源(N_Source) nvarchar(20) not null
7.简介(N_Synopses) nvarchar(20) not null
9.分类(属于新闻,还是图片,还是视频)(N_Classify) nvarchar(20) not null
10.权限() int 0代表游客 1代表普通用户 2代表管理员
11.图片 (N_Pic) image null
视频表(Video)
1.标题(V_Table) nvarchar(20) not null
2.发布日期(V_Datetime) datetime not null
4.发布者(V_Publisher) nvarchar(10) not null
5.发布人ID(V_Id) int not null
6.来源(V_Source) nvarchar(20) not null
7.简介(V_Synopses) nvarchar(20) not null
8.视频上传地址(V_FileAddress) nvarchar(50) null
11.视频链接地址(V_Path) nvarchar(50) null
9.分类(属于新闻,还是图片,还是视频)(V_Classify) nvarchar(20) not null
10.权限(V_Root) int 0代表游客 1代表普通用户 2代表管理员
图片表(Pic)
1.标题(N_Table) nvarchar(20) not null
2.发布日期(N_Datetime) datetime not null
4.发布者(N_Publisher) nvarchar(10) not null
5.发布人ID(N_Id) int not null
6.来源(N_Source) nvarchar(20) not null
7.简介(N_Synopses) nvarchar(20) not null
8.文件上传地址(N_FileAddress) nvarchar(50) null
9.分类(属于新闻,还是图片,还是视频)(N_Classify) nvarchar(20) not null
10.权限() int 0代表游客 1代表普通用户 2代表管理员
角色表(User)
1.用户ID (ID) 主键
2.用户名(U_Name)
3.密码(U_Pass)
4.权限()
权限表()
1.....
2...
3....
打算做一个发布系统,ASP.NET的,后台可以添加新闻,图片,视频, 前台就会显示。
上面我列的几个字段, 我不知道该如何建立主外键关系, 也不知道建表建立的对不对。
麻烦各位大神,帮看看, 给予指点
比如说 视频 栏目, 点击进入后 就会列出所有 视频的信息,
图片 ,新闻同上,
我是不知道在哪个表中建立主键, 哪个表中字段建立外键,啊 展开
5个回答
展开全部
表设计的不合理,重复项目太多。另外,小型系统即使不建立主外建查询也没有问题
再建立一个分类表,分类表ID作为主键,其他表有引用分类表的,全部是外键。
再如用户表,用户ID是主键,其它槐伏仔有引用用户名的全部插入用户ID就行了,全部铅汪是外键。需要读取中文姓名,出生日期之类的信息,用两个表的用户ID关联查询,信息就共享了。
新闻系统表(News)
1.标厅敏题(N_Table) nvarchar(20) not null
2.发布日期(N_Datetime) datetime not null
3.内容(N_Content) nvarchar(255)not null
4.发布者(N_Publisher) nvarchar(10) not null 不要了,删掉,用户表有了,使用发布人ID关联查询就可以提取中文名。
5.发布人ID(N_Id) int not null、角色表用户ID 外键
6.来源(N_Source) nvarchar(20) not null 不要,删掉
7.简介(N_Synopses) nvarchar(20) not null 不要,删掉
9.分类(属于新闻,还是图片,还是视频)(N_Classify) nvarchar(20) not null不要,删掉
10.权限() int 0代表游客 1代表普通用户 2代表管理员。 权限表ID的外键
11.图片 (N_Pic) image null 图片表图片ID的外键
视频表(Video)
1.标题(V_Table) nvarchar(20) not null?重复?
2.发布日期(V_Datetime) datetime not null
4.发布者(V_Publisher) nvarchar(10) not null
5.发布人ID(V_Id) int not null 不要了,删掉,
6.来源(V_Source) nvarchar(20) not null
7.简介(V_Synopses) nvarchar(20) not null
8.视频上传地址(V_FileAddress) nvarchar(50) null
11.视频链接地址(V_Path) nvarchar(50) null
9.分类(属于新闻,还是图片,还是视频)(V_Classify) nvarchar(20) not null
10.权限(V_Root) int 0代表游客 1代表普通用户 2代表管理员
图片表(Pic)
1.标题(N_Table) nvarchar(20) not null
2.发布日期(N_Datetime) datetime not null
4.发布者(N_Publisher) nvarchar(10) not null不要了,删掉,
5.发布人ID(N_Id) int not null
6.来源(N_Source) nvarchar(20) not null
7.简介(N_Synopses) nvarchar(20) not null
8.文件上传地址(N_FileAddress) nvarchar(50) null
9.分类(属于新闻,还是图片,还是视频)(N_Classify) nvarchar(20) not null
10.权限() int 0代表游客 1代表普通用户 2代表管理员
角色表(User)
1.用户ID (ID) 主键
2.用户名(U_Name)
3.密码(U_Pass)
4.权限()
再建立一个分类表,分类表ID作为主键,其他表有引用分类表的,全部是外键。
再如用户表,用户ID是主键,其它槐伏仔有引用用户名的全部插入用户ID就行了,全部铅汪是外键。需要读取中文姓名,出生日期之类的信息,用两个表的用户ID关联查询,信息就共享了。
新闻系统表(News)
1.标厅敏题(N_Table) nvarchar(20) not null
2.发布日期(N_Datetime) datetime not null
3.内容(N_Content) nvarchar(255)not null
4.发布者(N_Publisher) nvarchar(10) not null 不要了,删掉,用户表有了,使用发布人ID关联查询就可以提取中文名。
5.发布人ID(N_Id) int not null、角色表用户ID 外键
6.来源(N_Source) nvarchar(20) not null 不要,删掉
7.简介(N_Synopses) nvarchar(20) not null 不要,删掉
9.分类(属于新闻,还是图片,还是视频)(N_Classify) nvarchar(20) not null不要,删掉
10.权限() int 0代表游客 1代表普通用户 2代表管理员。 权限表ID的外键
11.图片 (N_Pic) image null 图片表图片ID的外键
视频表(Video)
1.标题(V_Table) nvarchar(20) not null?重复?
2.发布日期(V_Datetime) datetime not null
4.发布者(V_Publisher) nvarchar(10) not null
5.发布人ID(V_Id) int not null 不要了,删掉,
6.来源(V_Source) nvarchar(20) not null
7.简介(V_Synopses) nvarchar(20) not null
8.视频上传地址(V_FileAddress) nvarchar(50) null
11.视频链接地址(V_Path) nvarchar(50) null
9.分类(属于新闻,还是图片,还是视频)(V_Classify) nvarchar(20) not null
10.权限(V_Root) int 0代表游客 1代表普通用户 2代表管理员
图片表(Pic)
1.标题(N_Table) nvarchar(20) not null
2.发布日期(N_Datetime) datetime not null
4.发布者(N_Publisher) nvarchar(10) not null不要了,删掉,
5.发布人ID(N_Id) int not null
6.来源(N_Source) nvarchar(20) not null
7.简介(N_Synopses) nvarchar(20) not null
8.文件上传地址(N_FileAddress) nvarchar(50) null
9.分类(属于新闻,还是图片,还是视频)(N_Classify) nvarchar(20) not null
10.权限() int 0代表游客 1代表普通用户 2代表管理员
角色表(User)
1.用户ID (ID) 主键
2.用户名(U_Name)
3.密码(U_Pass)
4.权限()
展开全部
一般键都是建立在ID上面的,不管主键还是外键。这样才能保证唯一性。
你的每个表上看看有没答局有设置ID,有的话就拿它作为键;没伏举缓有的缺模话,就加入一个。
你的每个表上看看有没答局有设置ID,有的话就拿它作为键;没伏举缓有的缺模话,就加入一个。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主键选唯一能代表该组信息的也可以为其设脊辩立单独的编号做主键,外键的选取,比如你想和某个表樱液缺的信息相关联,外键选取对应埋顷表的主键,通常的数据库结构都是这样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
每个表都需要加1个id字段用来做主键 user表侍携与其它3表是老蠢伏1对多的关系 。关于权档衡限( 你网上查一查比较多 最笨的是建立4个表做成权限关系表)
追问
我就是不知道 在哪个字段上 加主键, 哪个字段上加外键啊。
追答
每个表都写1个字段 比如 新闻表 ->newsid 做成主键 其他的也一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建立主键后,可以建一个关联视图
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询