【问题标题】:Storing car part data in a database将汽车零件数据存储在数据库中
【发布时间】:2023-02-01 02:40:02
【问题描述】:

我想了解是否可以使用 Neo4J 数据库范例存储汽车零件数据。我对任何事情都持开放态度,所以如果有更好的选择,请提出建议。

例如: 一辆汽车有一个 VIN、车架号和一些适合它的特定零件。然后是同一辆车的不同类型:例如2007 Honda Accord CM2 和 2007 Honda Accord CM2 Type-S,两者有很多相同的部件,但被认为是同一辆车 (04636SED310ZZ) 是适合两者的外部面板。

然而,本田零件命名系统与丰田零件命名系统非常不同 - 对于丰田,它们有一个零件编号类别,与定义零件的一些其他编号配对。就像 52119-XXXXX 用于前保险杠一样。

我假设其他汽车制造商也有不同的零件系统。

我将如何创建一个数据库来存储许多不同类型汽车的零件数据(复杂性无关紧要),哪种类型的数据库范例最适合这种情况?

我想象的这种工作方式类似于 Java 接口的工作方式 - 有一个基本的“Car”接口,但“getCarPart()”函数的实际实现因品牌而异。

我不太确定如何着手设计甚至思考这个问题,因此非常感谢您的帮助。

谢谢

【问题讨论】:

    标签: database neo4j interface orm paradigms


    【解决方案1】:

    从这里开始的一个好地方是绘制您的域的图形模型。如果您手边有白板,那效果最好,Arrows tool 是一个很棒的基于 Web 的图表绘制工具。

    我认为图形数据建模是一个迭代过程:

    1. 识别“事物”——你域中的对象 --> 这些成为节点
    2. 这些东西之间有什么关系? --> 这些成为关系
    3. 有哪些属性? --> 这些成为节点的属性,或者如果它们描述两个节点如何相关可能作为关系的属性。
    4. 考虑您的业务需求。您想对数据提出什么问题。你能看到遍历图表来回答你的问题吗?如果不是,请调整您的模型。

      Arrows一起完成这个练习,我想出了这个属性图模型:

      这里不同的汽车“子模型”使用节点标签“Trim”来表示每个车型的不同装饰。汽车部件可能适用于每个装饰件,在这种情况下,它们连接到 CarModel 节点,或者部件可能仅与汽车模型的装饰件子集兼容。在那种情况下,我们可以对(:Part)<-[:HAS_PART]-(:Trim) 的关系进行建模。

      接下来的步骤是提出您想对数据提出的问题,并尝试通过图形确定遍历来回答问题。如果无法回答问题,则迭代图模型 - 添加属性、节点、关系或将属性提取到节点等。

    【讨论】:

      猜你喜欢
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 2018-05-09
      • 1970-01-01
      相关资源
      最近更新 更多