首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果有两个类型相同但性质不同的对象,应该采用什么表结构?

如果有两个类型相同但性质不同的对象,应该采用什么表结构?
EN

Stack Overflow用户
提问于 2019-07-12 02:56:44
回答 2查看 109关注 0票数 0

假设有两种产品X和Y,X的主键是A,B和C,而Y的主键是A和D。我应该把它们放在同一张表里吗?为什么我应该这样做,如果我不应该这样做,那为什么呢?

我目前将它们放在两个不同的表中,但一些同事建议它们属于同一个表。我的问题是,我应该考虑将它们放在同一个表中,还是继续使用不同的表?

下面我给出了上述情况的示例表。

代码语言:javascript
复制
CREATE TABLE `product_type_b` (
    `PRODUCT_CODE` VARCHAR(50) NOT NULL,
    `COMPONENT_CODE` VARCHAR(50) NOT NULL,
    `GROUP_INDICATOR` VARCHAR(50) NULL DEFAULT NULL,
    `RECORD_TIMESTAMP` DATE NULL DEFAULT NULL,
    PRIMARY KEY (`PRODUCT_CODE`, `COMPONENT_CODE`)
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;
代码语言:javascript
复制
CREATE TABLE `product_type_a` (
    `PRODUCT_CODE` VARCHAR(50) NOT NULL,
    `CHOICE_OF_COVER` VARCHAR(50) NOT NULL,
    `PLAN_TYPE` VARCHAR(50) NOT NULL,
    `RECORD_TIMESTAMP` DATE NULL DEFAULT NULL,
    `PRODUCT_TENURE` INT(11) NULL DEFAULT NULL,
    PRIMARY KEY (`PRODUCT_CODE`, `CHOICE_OF_COVER`, `PLAN_TYPE`)
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;

正如您所看到的,有一些字段对于两个表都不是通用的,但它们是主键的一部分。还有一些对两个表都不通用的其他字段。

以下是正在考虑的系统的更大图景。

  • 每种产品类型从其发送到系统的位置都有不同的来源。我们需要将这些产品存储在数据库中。
  • 我希望在规范化和性能之间取得平衡,这样我的读写速度就不会因为normalization.
  • There而受到太大影响。
  • 也是一个web应用,它将有一个页面,用户可以在其中搜索这些产品。
  • 用户将填充某些列字段作为筛选器,我们需要根据这些字段来获取产品并显示在UI上。亚型中的
  • 变异目前是2,预计不会超过4-5,这可能会超过10年。这又是一个近似值。n我希望这代表了系统的更大图景。

我想要有良好的读写速度,而不会牺牲太多。那么我应该继续这个设计吗?如果不是,应该实施什么设计?

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

https://stackoverflow.com/questions/56995719

复制
相关文章

相似问题

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