如何构建我的 MSSQL 数据库来处理数组

问题描述 投票:0回答:1

在工作中,我们有一个 C# 程序,机器操作员用它来将物品数据发送到机器。 现在他们希望我们调整程序,以便我们可以在Azure上保存不同的文章。 C#程序中的文章数据包括:

ArticleName (string)
Type(int)
Length (int)
Tool (array of int)
Position (array of double)

直到大约两周前我才查看过任何数据库。 我已经成功制作了一个非常简单的测试程序,该程序在 Azure 中的两个不同列(在我在 SSMS 中手动创建的数据库表中)添加两个值(一个整数和一个字符串)。然后我已经能够检索数据,但仅此而已。

数组是一件大事。根据文章的不同,它通常包含 30-40 个元素,但也可以从 1 个元素到 200 个元素不等。

如果有帮助的话,我可以将 C# 中的数组更改为列表。

我的问题是:我应该如何设计数据库表?

我一直在四处寻找,不明白是否应该制作多个表,或使用某些 {145.0, 186.7, 302.24} 类型语法,或其他方式。

更新:感谢您的重播。 我正在阅读所有内容,现在已将数据库版本控制添加到列表中。

我估计,一旦一切都说完了,我们的数据库中将有大约 1000 篇文章。 创建文章时,我们每篇文章只写入一次数据,然后我想象 HMI 中的“加载”按钮列出了所有文章(仅“名称”和可能的“长度”)。用户选择一篇文章,该文章的所有数据都会从 DB 读取到 C# 程序。操作员每天可能会这样做 10-20 次。

siggemannen:你的意思是这样的吗? Table Relations

相关性 是的。工具和位置是相关的。工具数组中数组元素一所使用的工具与位置数组中的位置元素一相关。

关于“stoos”的答案:我没有打算使用任何查询,例如“使用工具等于4检索所有文章”。但我已经开始思考未来会发生什么,也许最好不要限制任何事情。

c# sql-server database-design
1个回答
0
投票

正如评论员已经指出的那样,这取决于情况。实际上有两个选择:

  1. 如果您想查询类似“检索 Tool 等于 4 的所有文章”之类的数组,最好将 Tools 数组提取到新表 Tool 并引用articles。

  2. 如果您确定永远不会按照上面的方式查询数组,那么只需将它们存储为 blob 列,例如 json 数组或包含以逗号分隔的值的字符串 - 您可以更轻松地在您的应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.