关于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对多关系:一个用户对应多种装备;
多对多关系:每个用户对应多种装备,每种装备也对应多位用户。
你的实际情况属上面哪一种?如果是多对多关系的,你要在用户表和装备表之间建一中间表,此表要拥有自己的主键,并引入用户表的主键和装备表的主键为其外键。

其他的表的处理也要按照上述分析到底是哪种对应关系,以确立是否单独建表及主外键关系。
万山数据
2024-11-14 广告
实时数据仓库是北京万山数据科技有限公司重要的数据处理与存储解决方案。它专注于实时或近实时地捕获、存储和管理数据流,确保数据的高时效性和准确性。通过先进的数据处理技术和高效的存储架构,实时数据仓库能够支持复杂的数据分析需求,为企业决策提供即时... 点击进入详情页
本回答由万山数据提供
手机用户96170
2014-06-09 · TA获得超过123个赞
知道答主
回答量:179
采纳率:0%
帮助的人:59.8万
展开全部
表二还有一些字段吧
以上回答你满意么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式