数据库设计用于:非常分层的数据;服务器外子集缓存以进行处理;小到中等大小; (完整的初学者)

时间:2019-06-05 21:34:41

标签: sql database

我发现自己有一个项目(非常轻松,对失败几乎没有影响),我认为需要某种数据库来解决。问题是,尽管我总体上还是缺乏经验,但是除了可以使用Google挖掘并设置平均家庭云的教程之外,我从未接触过任何数据库。我陷入了自己不知道自己不知道的事情中。

关于情况:

数百种不同的自动化测试系统将通过缓慢的网络将少量数据频繁写入数据库。然后,很少有用户会很少通过慢速网络从数据库中获取大量数据子集。然后将对数据进行处理,这将需要大量读取,这时需要非常高的性能。

这将是数据(数量级):

  • 包含1000种产品
  • 包含10个变体
  • 100个批次包含
  • 包含100个对象
  • 包含10个测试系统
  • 包含100个测试步骤
  • 10个条目

它基本上是一个标记的B树,其中的测试步骤为离开节点(因为其格式已经标准化)。

一个批次将始终属于一个变体,一个对象将始终属于同一变体(但可能是多个批次),而一个变体将始终属于一个产品。有成千上万种不同的测试步骤。

可能的查询将尝试获取(例如):

  • 批处理中的所有内容(可选:条目的值在一定范围内)
  • 来自变体的一切
  • 来自名称为Z的测试系统的X和Y类型的所有测试步骤

据我所知,行数十万列(包含上面描述的所有内容),似乎不是一个好主意,大约一万亿行也不行(而且两者之间的中间位置似乎仍然非常极端)

我真的很想利用数据的层次性,但是我在例如诸如嵌套数据库之类的东西根本就不是东西。

如果您能帮助我,那就太好了

  1. 搜索内容
  2. 构造和存储此数据的一种好方法
  3. 在一些地方,即使我发现了很多有关SQL恐怖故事的地方,我也可以学习避免
  4. 如果有一个很好的方法/最佳实践,我应该知道如何传输查询的数据并将其缓存在本地进行处理

谢谢您,度过愉快的一天

安德烈亚斯

1 个答案:

答案 0 :(得分:0)

  1. 搜索“数据库规范化”。
  2. 规范化的关系数据库是一个很好的结构。
  3. 如果您想避免使用SQL带来的恐惧,还可以尝试使用No-SQL Document-oriented Database,例如MongoDB。实际上,在很多情况下,我都更喜欢这种数据库。
  4. 数据库将缓存您的查询结果,当然,无论您使用哪种查询数据库的工具,都会将数据缓存在该工具的内存中(或者如果结果数为,它将至少缓存一部分查询结果)很大)。您也可以将结果写入文件。 “缓存”有很多方法,它们在不同情况下都非常有用。