繁体   English   中英

数据库设计和建模特定关系

[英]Database design and modeling specific relationships

我正在尝试实施运输和跟踪解决方案。

有一些TRUCKS通过特定SCHEDULES上的指定PATHSPRODUCTS从一个CITY移到另一个CITY TRUCKS通过CONTAINERS运输PRODUCTS 这些TRUCKS是通过JOBS指令的,例如pick_uptransferdrop_off

那我遇到的问题是,当product_1需要由移动truck_1通过pick_up JOBcity_Acity_C通过city_B 与此同时,有product_2被移动通过truck_2经由JOBpick_upcity_Ccity_A经由city_B trucks都可以transferJOB )他们的containers (基本上是productcity_C通过drop_offJOB )命令回到其原籍city ,即,对于truck_1 ,回到city_A ,对于truck_2 ,回到city_C

所以我有下表:

  • 卡车 (truck_id,truck_code,...)
  • PRODUCT (product_id,product_code,product_name等)
  • 容器 (container_id,container_desc,...)
  • 城市 (city_id,city_name,city_desc等)
  • PATH路径 ID,from_city_id,to_city_id等)
  • SCHEDULE (schedule_id,schedule_name,schedule_desc,start_time,end_time等)
  • TRANSACTION (transaction_id,transaction_name,transaction_desc等)

如何在TRUCKS之间转移CONTAINERS的上述场景中建模?

假定卡车和/或卡车司机的任务涉及经历一系列事件,包括遵循路径,进行交货和交易等。假定工作就是这样的事件,其中有几种,例如接送,转移和放下。

关系数据库中的表描述了应用程序的状态。 每个表都有一个关联的(命名)空白语句(谓词)。 基表谓词由设计者给出:

// truck [truck_id] has code [truck_code] and ...
TRUCK (truck_id, truck_code, ...)
// product [product_id] has code [product_code] and name [product_name] ...
PRODUCT (product_id, product_code, product_name, ...) 

(谓词表征了应用程序关系,又称表关系,即表的关系,因此称为“关系模型”。)

谓词的参数是表的列。 当为每个参数提供值时,您将得到一个关于应用程序正确或错误的语句(命题)。 列的值行为每个命名的空白提供此类值。 使表的谓词为true的行进入表。 如果为false的行将保留。 这就是数据库状态描述应用程序情况的方式。 您必须知道表的语句,才能读取或查询数据库,以根据其行找出有关情况的正确与否,并通过在观察情况后将正确的行准确地放入数据库中来更新数据库。

每个查询还具有根据其表的谓词构建的谓词。 两个表的JOIN给出满足其谓词AND的行,UNION OR等等。 查询结果还包含满足其谓词的行

(约束与此无关;它们只是共同描述给定谓词和可能出现的应用状态而可能出现的数据库状态。)

您需要确定足够的谓词,才能完全描述应用程序的状况。 其中包括抽象的事物,例如路线和交易,事件,时间表和任务等。(一旦有了足够的谓词/表,我们将通过归一化等技术对其进行改进。)

当存在各种不同的事物时,我们讨论超类型和子类型,并看到谓词,例如(我将使用“ job”作为事件来处理):

// job [job_id] for trucker [trucker_id] is ... stuff about all jobs ...
JOB(job_id, trucker_id...)
// job [job_id] is a pickup with ... stuff about pickups ...
PICKUP(job_id, container_id...)
// job [job_id] is a transfer with ... stuff about transfers
TRANSFER(job_id,...)
...

(作为事件,在具有两个或多个关联的容器等的情况下,您可能会或可能不会具有不同或其他的转移概念。)(搜索“子类型”。 例如

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM