【发布时间】:2017-08-13 04:56:11
【问题描述】:
我正在使用存储在 SQL 数据库 (mariadDB) 中的数据来存储有关“小部件”和“产品”的信息。
小部件具有与其关联的元数据和一些关联的关系数据。就像构建团队、构建者和图像一样。构建者可以在任意数量的团队中,并且任何团队都可以构建任何小部件。目前,这些数据被规范化为单独的表和映射映射/关联表。
产品也有元数据;描述、用途、交付时间等。
产品和小部件表似乎非常适合 NoSQL 解决方案。也许不得不去规范化建设者和建立团队。
数据似乎不太适合 NoSQL 的地方是产品和小部件之间的关系。小部件可以关联/映射到 0 个或更多产品。映射到产品的每个小部件都为该产品提供了一种能力(小部件 A 可以提供网络服务,小部件 B 可以提供运动等)。
每隔一段时间,产品套件就会发生变化,然后小部件会重新映射到新产品集。这些数据与商业智能 (BI) 软件 (Jaspersoft Studio) 一起用于生成报告。
数据不大。它供我们的内部团队使用,并根据其他团队的要求为他们生成报告。所以我不担心 ACID 合规性或写锁、垂直或水平扩展、24x7 可用性以及诸如此类的事情。我主要关心的是数据变化时的灵活性(捕获的关于小部件的元数据和小部件应用到的产品集)。
- 根据我的研究,如果您的数据是完全相关的,则应避免使用 NoSQL。这些文章相当古老,我想知道是否仍然如此?
- 当产品套件发生变化时,将小部件重新映射到新套件是很痛苦的。从概念上讲,NoSQL 解决方案似乎可以帮助缓解这种痛苦。但我不确定如何。
【问题讨论】:
标签: sql database business-intelligence nosql