首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何为不同的产品(不同的属性)设计一个数据库,以及我们应该记住未来的新产品需求?

我如何为不同的产品(不同的属性)设计一个数据库,以及我们应该记住未来的新产品需求?
EN

Database Administration用户
提问于 2017-09-26 11:57:55
回答 1查看 164关注 0票数 -2

我的问题非常类似于问题,但我不想使用EAV设计

现在,我们商店里有这些产品。

硬盘->size(GB),速度,价格

衬衫->号(M-L-S),颜色,价格

书页->编号,作者,价格

1→方法

为了设计数据库,我正在尝试使用继承方法。

产品(SN,Odrer,价格,日期)

子表

硬盘->size(GB),速度

->号→衬衫(M-L-S),颜色

->→nummber of page,作者

乘积和子表具有一对一的关系

但是如果将来新产品具有不同的属性,我将创建新的表。

,这是正确的做法,还是有更好的做法?

2→方法

我应该使用实体属性值模型吗?

->Even --如果我将使用EAV设计,而我仍然使用新的实体和属性更新代码?

->Design complexity===high

->readablity===low

->query cost===high

请帮助/建议我做一个更好的设计?

EN

回答 1

Database Administration用户

发布于 2017-09-26 18:12:01

有关设计数据库的决定必须根据您想要查询数据的方式作出。

如果您要同时查询所有产品(所有类型的产品),那么我建议您将所有产品放在一个表中(第二个解决方案)。如果您的大多数查询都必须返回有关单一类型产品的信息,那么只有一种关系的解决方案会更好。

但是通常,当结构发生动态变化时,NoSQL数据库是最好的选择。

您甚至可以尝试拥有一个包含两个部分的表。

  1. 所有类型产品的结构相同。
  2. Json列,它将保持表的每一行的结构不同。

在一些关系数据库管理系统中,您还可以在JSON列(例如PostgreSQL)上创建索引,以便在检索数据时具有更好的性能。

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

https://dba.stackexchange.com/questions/186900

复制
相关文章

相似问题

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