sql - 布线数据库的数据库方案

标签 sql design-patterns database-design

我目前正在为我的工作开发一个信号数据库。该数据库的目的是跟踪与我们的计算机处理系统接口(interface)(输入或输出)的所有信号。这些信号可以是硬连线模拟信号(例如 4-20mA),也可以是数字信号(即以太网)。我们还希望将信号链接到它们从起点到终点流经的所有组件。这将使我们能够对 X 电缆损坏时会丢失哪些信号进行故障分析。

我想出了一个基本方案,它允许我通过抽象表来继承我所说的物理表来捕获单个信号流路径。物理表代表物理对象的所有内容(即组件、仪器、连接器),并让该表存储在路径表中分配的路径 1 的 ID。然而,当我开始分配通过单根电缆流动的多个路径时,这会变得复杂。对于主干电缆(多个线对),我认为这很容易,因为我可以添加线对表来存储路径的 ID,但是我无法使用可能运行数千个信号的数字总线电缆来做到这一点在同一条线上。

构造此结构的最佳方法是什么,以便我可以查询 Signal X 并且数据库将告诉我信号流经的所有组件、电缆、连接器等?

抱歉,我无法从工作计算机上传我的想法的图像。

编辑:添加更多信息

我做了更多阅读,看起来我需要的是能够将图形保存在 SQL 样式数据库中。现在我可以使用的只有 MS Access(别开玩笑了)。我不需要遍历图表来找到最短路径。我只想保存包含信号流过的所有组件的图表。信号路径将根据我们在工作中生成的其他设计文档而得知。是否可以在关系数据库(如 MS Access)中保存具有静态预制路径的图形结构。我知道这可能总体上很复杂并且处理器很重,所以我愿意接受关于如何实现这一目标的建议。

附注我是公司的一名相对较新的工程师,在大学空闲时间创建网站,因此拥有数据库和 SQL 经验。我可能不是专家,但我知道我可以构建数据库。

编辑#2 - 感谢@Randy 给了我一个起点。提出了一个基本设计

Physical (Base Class Table)
-----------------------------------
   ID_Phys (PK)
   (Other Generic Info)

Component (Inherits Physical)
-----------------------------------
   ID_Comp (PK/Index #)  
   ID_Phys (FK)
   Max Terminals
   Is Junction Box (Yes/No)
   (Other Info)

Cable (Inherits Physical)
-----------------------------------
   ID_Cable (PK/Index #)  
   ID_Phys (FK)
   Harness Cable Number
   Cable Type
   (Other Info)

Connector (Inherits Physical)
-----------------------------------
   ID_Conn (PK/Index #)  
   ID_Phys (FK)
   Connector Number
   Connector Type
   # of Pins
   (Other Info)

Instrument (Inherits Physical)
-----------------------------------
   ID_Inst (PK/Index #)  
   ID_Phys (FK)
   Instrument Number
   Signal Type
   (Other Info)

Interface Points 
-----------------------------------
   ID_InterPts (PK / Index #)
   ID_Phys_Origin (FK-Physical)
   ID_Phys_Destination (FK-Physical)

Signal Flow Path Sequence
-----------------------------------
   ID_PathSeq (PK / Index #)
   ID_FlowPath (FKl)
   ID_Phys (FK-Physical)
   Squence # (1,2,3,4,etc)

Signal Flow Path
-----------------------------------
   ID_FlowPath (PK / Index #)
   (Other Info)

信号流路径是一对多的信号流序列。接口(interface)点存储源 Material 和目标 Material 之间的连接。物理是一个通用表,它允许我表示连接到我们的线束的任何东西,无论 Material 类型如何。我知道接口(interface)点表和信号弗洛路径序列表是相似的。我认为我可以查询信号流路径只是为了获取 Material 而不必递归查询,因为流路径已预加载在信号流路径序列表中。如果我真的想知道它们相互连接的顺序,我会根据接口(interface)点表查询结果。

这看起来是一个很好的进步吗?

最佳答案

也许这会有所帮助:

node
-----------
node_id
node_type
name

data_packet
------------
data_packet_id
data_packet_type
(other info)

data_flow
------------
producer_node_id
consumer_node_id
data_packet_id
(other info)

关于sql - 布线数据库的数据库方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18341866/

相关文章:

sql - 需要制作一个 .bat 文件来停止然后重新启动 SQL Server 数据库

用于简单静态数据的 C++ 架构

design-patterns - 为什么解释器模式很糟糕?

MySQL错误1005?

sql-server - 为什么 varchar(n) 中的 n 指定为具体数字?

mysql - 如何将一行分配到不同的行中,并按其具有的值和创建日期分组?

mysql - SQL 将具有相同值的行删除到新表中

mysql 根据值将一列分成多列

java - 扩展 BigDecimal?

mysql - 数据库设计,最佳实践,需要建议