作者aoksc (重出江湖)
看板Database
标题Re: [SQL] 资料库设计上的问题
时间Tue Apr 21 22:11:39 2015
※ 引述《aoksc (重出江湖)》之铭言:
: 标题: [SQL] 资料库设计上的问题
: 时间: Mon Apr 20 23:18:56 2015
:
: (针对 SQL 语言的问题,用这个标题。请用 Ctrl+Y 砍掉这行)
: 资料库名称:MS-SQL
:
: 资料库版本:2012
:
: 内容/问题描述:
:
: 请问各位
:
: 我目前要设计一个订单系统
:
: 资料库架构如下http://imgur.com/ApWQjNY
:
: 我的想法是菜单底下跟每个一个品项关联
:
: 而订单跟每一家菜单编号相关连
:
: 订单明细则是订单编号跟菜单品项编号相关连
:
: 因为当有人开单後很多人都用同一张订单点餐所以关联订单编号
:
: 而每一张明细也纪录相对应的品项编号
:
: 不过当我要去建立关联时都会出现
:
: 「资料表的资料行与现有的主索引键或unique条件约束不相符」
:
: 请问是我的设计的架构有错吗?
:
: 不好意思对SQL的相关知识还很粗浅
:
: 希望各位不吝指教
:
: 谢谢
:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.169.170.118
: ※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1429543140.A.0BA.html
: 推 GoalBased: 你可以先GOOGLE 04/20 23:50
: → GoalBased: 新手遇到问题直接把你的问题丢GOOGLE 04/20 23:50
: → GoalBased: 会比上来问还快还完整 04/20 23:50
: 推 a926: 建关联的时候,资料表里面不要有资料会比较好喔! 04/21 10:04
: → a926: 你这是因为里面有资料了!他会去判断关联的完整性 04/21 10:04
谢谢两位的回覆
我用这错误讯息上google找其实资料满少的
而且我还是看不太懂到底他说的是什麽意思
只知道应该是索引键数量不同的问题
但奇怪我明明两个栏位都列为主键了怎麽还会有不同?
最後还是去找北风资料库这经典范例来看
还有经过多次实验跟网路上的片段相关索引资讯
终於把这问题解决
我整理心得应该是因为两个主键组合而成的本身就是一组索引
但我要去关联的table并没有「相同组合」的栏位
所以也就是我除了有主索引键之外
我还必须去设定一般的索引键
所以说等於我OrderDetail里面一共有
「ItemNumber+OrderNumber」、「ItemNumber」、「OrderNumber」这三个索引键才对
而我之前一直误以为所设的ItemNumber、OrderNumber两个主键就是两组索引
不晓得我以上叙述有无错误的地方呢?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.169.170.118
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1429625502.A.B02.html
1F:推 BigLoser: 你两篇的描述我都看不太懂,可不可以举个实体例子 04/21 22:19
2F:→ BigLoser: 你第一张图看起来应该是错的,关联是这样的, 04/21 22:19
3F:→ BigLoser: 我有一个主键,要关联的人会有一个外部键, 04/21 22:20
4F:→ BigLoser: 我的主键和别人的外部键关联 04/21 22:20
5F:→ BigLoser: 其实你说你有抓北风了,直接看北风会比较易懂 04/21 22:20
6F:→ BigLoser: 你可以看看北风里面应该没有类似你这种作法的 04/21 22:21
7F:→ BigLoser: 但奇怪我明明两个栏位都列为主键了怎麽还会有不同 << 04/21 22:21
8F:→ BigLoser: 这句话很奇怪= = 04/21 22:21
9F:→ BigLoser: 建议先看网路资料或是买本入门书籍来K一下 04/21 22:22
10F:推 a926: 索引归索引 PK归PK 另外一般做关联时只会讲到PK FK 04/22 12:04
11F:→ a926: 不会提到索引呐 04/22 12:04
12F:→ a926: 为了怕有误 我说的索引不是索引键这个词 04/22 12:06
谢谢各位的回答
抱歉对资料库的知识还浅薄没深入研究过
所以有些东西说出来可能怪怪的
我是想设计一个点餐的系统
使用者可以建立一个店家基本资讯(ShopHead)
而店家的相关品项(有什麽餐点)关联店家基本资讯
然後当使用者开单时有该店家的资讯(ShopNumber)跟该次订单编号(OrderNumber)
之後其他使用者可以用这张订单选择他要点的餐点
OrderDetails包含关联那张订单跟选择了哪个品项
简单来说就是一个订便当的系统
一个人开单订购
其他人就选择要订什麽餐点大概的概念是这样
http://imgur.com/jyXCWUY
我有看过北风资料库但不确定我的环境是否跟他类似
所以不晓得各位觉得这样的情境搭配这样的资料库合理吗?
另外各位有没有推荐资料库设计相关的书呢?
谢谢
※ 编辑: aoksc (118.169.167.32), 04/22/2015 23:27:33
13F:推 a926: 书我之前有推过 04/23 00:20
14F:→ a926: ISBN:9789863120636 04/23 00:21
15F:→ a926: ISBN:9789863120650 04/23 00:21