首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是合并还是拆分表

是合并还是拆分表
EN

Stack Overflow用户
提问于 2018-02-06 02:24:13
回答 2查看 33关注 0票数 0

我想不出更好的解决办法是什么。

表格:35个字段,其中2个是长文本类型。(在我即将使用的CMS中已经内置)

B表:类似数量的字段,其中3个是文本类型。(我的项目新需要的数据)

首先,我决定使用已经存在的'A‘表,并添加新的'B’表。这是非常容易的方式,因为CMS已经提供了我的项目所需的类和方法(等等-搜索,crud.)。

但是,我关心的是表演。由于表'B‘是对'A’的添加,大多数DB操作,如显示列表、搜索、获取内容.,每次必须至少一次引用这两个表。

绝对需要连接和多个查询。本网站需要同时向在线用户显示多个列表和内容。

什么是最好的解决方案?合并两个表是否更有效,还是尽可能多地重复使用现有的代码,并保持与CMS的兼容性?

ps。如果将两个表组合在一起,就可以减少表'A‘中一些不必要的varchar字段。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-06 03:40:27

您只复制将tableB与tableA关联起来的列。不应重复非主键列的原因:

表的大小在增加,如果表之间有重复的字段,那就是浪费空间。

不管要复制的列大小如何,只为了确保所有重复的列都被正确更新,维护表是非常困难的。例如,有一个重复的列名为detail。如果您将tableA中的此列更新为特定的id,则需要再次努力在tableB中更新相应的记录。

将花费大量的精力、资源、时间和金钱来维护表之间重复的非主键列。

票数 0
EN

Stack Overflow用户

发布于 2018-02-06 02:49:18

合并两个表太昂贵,也不明智。如果这两个表包含重复字段,您将浪费大量的数据库空间,这将影响CRUD操作。最好的方法是创建表B,但只添加表A中的主键字段,您可以使用这些字段链接两个表。通过这种方式,可以很容易地检索到两个表中的特定需要的数据。您也不需要从两个表中检索所有数据。

示例:

表A:

id

fname

国名

35个字段的其余部分

表B:

tableb_id

id (来自表A)

表B其余字段

您的查询:

选择列

来自TableA,TableB

其中TableA.id = TableB.id

和(所有其他条件,如TableA.lname = "Santos");

或使用内连接

选择column_name(s)

从tableA内部联接tableB到tableA.id = tableB.ID

其中(所有其他条件,如TableA.lname = "Santos");

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48634516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档