关于mysql表关联的问题!

用户表,宠物表,宝石表,彩蛋表,消息记录表,天赋表,装备表,技能表!这样的表结构下,我要用中间表将用户表和其他所有表进行关联,那么我要写一张中间表关联所有的表呢?还是每关... 用户表,宠物表,宝石表 ,彩蛋表,消息记录表,天赋表,装备表,技能表!
这样的表结构下,我要用中间表将用户表和其他所有表进行关联,那么我要写一张中间表关联所有的表呢?还是每关联一个表写一个中间表!
麻烦请给个正确的表结构的处理!
展开
 我来答
匿名用户
2014-06-09
展开全部

是两两关联还是一表关联所有表,这不是凭空乱猜的。楼主连最基本的概念都没弄清楚,首先,你问问自己为什么需要这些表?如果这些表是凭着感觉构建出来的,那么结局注定是乱,甚至是出错更进一步的话可能出现灾难。

正确的做法是:

  1. 进行需求分析;

  2. 对分析结果画数据流图;

  3. 根据数据流图各部分构造出一个个子E-R图;

  4. 将各个子E-R图合并成全局E-R图。这个全局E-R图就是构造数据库的基石。

这个全局E-R图是业务模型的抽象,对这个图建表有以下四种情况:

1.给其上的每个实体建一张表;

2.实体与实体之间的联系,如果是一对一(很少会这样做)的,则将该联系的属性并入随便哪头的实体表;

3.如果联系是1对多的,则可以给该联系单独建表,也可以将其属性并入多的这一头。如果是单独建表,则可取多的这头表的主键为其主键,也可单独开主键,并引入多的这头主键为其外键;

4.如果联系是多对多的,则必须单独建表(这就是你上面提到的中间表),这个表最好自己开辟主键,且必须把两头实体的主键拿来当外键,以建立他们之间的联系。


回到你的问题,你给了这些表,我们并不清楚你的具体业务是什么,并不清楚你已建的这些表是否合理,也不清楚这些表在业务上的相互关系,所以外人难以给你建中间表。建议楼主先学习掌握数据库原理,然后自行分析并勾勒出E-R图,接着建表是一目了然的事了。

追问
先非常感谢一下,
这个表用户表是存在一些用户的等级信息之类的,而用户也同时拥有着所有其他表里的内容,比如每个用户都有宠物,都有装备,我之前是将所有的表都单独建立一张表每个表都有统一的用户id,然后朋友说我这样做不行,要我尽可能的做一些关联来优化,我不知道具体怎么优化,他给的建议是做关联中间表!想问一下您这样的关联可以吗?
追答
就拿装备表来讨论一下吧,
用户和装备是一对一关系还是一对多关系还是多对多关系?
1对1关系:一个用户只对应一种装备;
1对多关系:一个用户对应多种装备;
多对多关系:每个用户对应多种装备,每种装备也对应多位用户。
你的实际情况属上面哪一种?如果是多对多关系的,你要在用户表和装备表之间建一中间表,此表要拥有自己的主键,并引入用户表的主键和装备表的主键为其外键。

其他的表的处理也要按照上述分析到底是哪种对应关系,以确立是否单独建表及主外键关系。
手机用户96170
2014-06-09 · TA获得超过123个赞
知道答主
回答量:179
采纳率:0%
帮助的人:58.1万
展开全部
表二还有一些字段吧
以上回答你满意么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式