gpt4 book ai didi

mysql - parking 场数据库设计

转载 作者:行者123 更新时间:2023-11-30 23:15:42 25 4
gpt4 key购买 nike

我们在 parking 场的入口和导出处安装了两个车牌读取器摄像头,在进行检测时会生成一个 CSV 文件,然后自动将其加载到数据库中,入口处还有一个自动操作的屏障由相机的“白名单”生成,然后从数据库内部控制并导出到文本文件中。

最初,我认为按照下面的设计这将是一个简单的 3 表数据库,但我很快意识到情况并非如此:

我的初步设计:

tbl_in :      ID (autonum/PK), Plate, Date_in, Time_in    
tbl_out: ID (Autonum/PK), Plate, Date_out, Time_out
tblwhitelist: Plate(PK), Country Code, Description

目前,我能想到的唯一关系是:

Whitelist plate-Plate_in & plate_out whitelist中的一个plate可以在in & out表中多次出现


这已经变得更加复杂(这是我的大脑真正融化的地方!)已指定的查询(括号显示列和正在考虑的结果的基本逻辑):

  1. “今天在现场列入白名单的车辆”(如果车牌在白名单上:Plate、Description、Time_in、Time_out [如果今天在 OUT 表上看到车牌,否则为空])
  2. “今天看到的非白名单车辆”(如果车牌不在白名单上:Plate、Time_in、Time_out [如果在 OUT 表上看到车牌,否则为空])
  3. “白名单车辆今天/过去 7 天/过去 30 天/过去 90 天的现场时间(白名单上的 IF 牌照:牌照、说明、Date_in、Time_in、Date_out、Time_out)这将现场多次出现相同车牌的重复条目
  4. “非白名单车辆今天/最近 7 天/最近 30 天/最近 90 天的现场时间(如果车牌不在白名单上:Plate、Date_in、Time_in、Date_out、Time_out)这个会在现场多次重复输入相同的车牌

我真正需要帮助的是关于如何整理查询代码以使它们正常工作的一些想法。这是我在这个项目中最后的主要障碍之一。不幸的是,这是一个像珠穆朗玛峰那么大的障碍。如果您能提供任何帮助,我们将不胜感激!

最佳答案

我同意 Straweberry 的观点,inout 不需要两个表。你可以有一个这样的:

 tblVehicleEvent : ID (autonum/PK), Plate, EventDate, EventTime, EventType

其中 EventType 的值为 INOUT

或者您可以像这样合并 TimeIn 和 TimeOut 以及 DateIn 和 DateOut:

 tblVehicleEvent : ID (autonum/PK), Plate, DateIn, DateOut, TimeIn, TimeOut

根据您的要求,我认为第二个对于您稍后的查询会更容易。

查询如下:

  1. 今天现场的白名单车辆”(IF 车牌在白名单上:板材、描述、Time_in、Time_out [如果在 OUT 表上看到板材今天,否则为空])

    从 tblVehcileEvent V 中选择 W.Plate、描述、TimeIn、TimeOut
    INNER JOIN tblWhitelist W
    ON V.Plate = W.Plate
    WHERE DateIn = curdate()

  2. “今天看到的非白名单车辆”(如果车牌不在白名单上:Plate, Time_in,Time_out [如果在 OUT 表上看到板 block ,否则空])

    选择板、TimeIn、TimeOut
    来自 tblVehicleEvent
    盘子不在的地方(从 tblWhitelist 中选择盘子)

  3. “白名单车辆今天/过去 7 天/过去 30 天的现场时间天/过去 90 天(如果车牌在白名单上:车牌、描述、Date_in, Time_in, Date_out, Time_out) 这会重复现场多次出现相同板 block 的参赛作品

    选择 W.Plate、描述、TimeIn、TimeOut
    来自 tblVehcileEvent V
    INNER JOIN tblWhitelist W
    ON V.Plate = W.Plate
    WHERE DateIn BETWEEN startDate 和 EndDate

  4. “非白名单车辆今天/过去 7 天/过去 30 天的现场时间天/过去 90 天(如果车牌不在白名单中:Plate、Date_in、Time_in, Date_out, Time_out) 这将有重复的条目现场多次同盘

    选择板、TimeIn、TimeOut
    来自 tblVehicleEvent
    盘子不在的地方(从 tblWhitelist 中选择盘子)
    AND DateIn BETWEEN startDate 和 EndDate

关于mysql - parking 场数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17966679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com