【发布时间】:2016-11-24 02:19:07
【问题描述】:
我正在为本地酿酒厂开发生产控制应用程序,但在构建数据库时遇到问题。
一个核心功能是用户创建精神类型的能力,这些类型都有相关的生产过程。每个过程可以有多个步骤。有 7 种不同类型的步骤。
当用户创建“批次”某种烈酒时,将选择一种烈酒类型,并按照定义的生产流程向用户呈现“向导”。在每一步,用户都会输入与该步骤相关的信息。
我想出的是这种多对多的关系:
spirits (spirit types)
- id
- name
steps (steps in the production process)
- spirit_id
- state_id
states (names of all possible steps)
- id
- name
虽然这对创建精神类型很有效,但在填写数据时却有所欠缺。由于生产过程步骤中的每个步骤都需要不同的数据:
distillation
- abv
- mass
dilution
- abv
- water
filtration
- density
- volume
这种应用程序的最佳结构是什么?
【问题讨论】:
-
我喜欢 SQL,但您所描述的内容听起来确实是 Mongo 或其他一些 nosql 数据库的问题。我使用 Mongo 取得了一些成功,根据我的经验,它运行良好。我在 Java 中工作,并且我发现了大量用于使用该语言使用 Mongo 的高质量资源。我认为大多数主要语言的情况都是相似的。 (这不是插件,我更喜欢在大多数事情上使用 SQL。)
-
我在这些设置中使用键/值对。它不是最可扩展的,但除非您有几百万个进程,否则它应该可以工作。名称值对、键值对、属性值对、EAV....都引用同一个东西。许多开发人员不会选择这个。另一种情况:stackoverflow.com/questions/19458613/…
标签: mysql sql database database-design relational-database