前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高质量编码-轨迹管理平台(表设计)

高质量编码-轨迹管理平台(表设计)

原创
作者头像
MiaoGIS
修改2020-12-02 14:27:13
3680
修改2020-12-02 14:27:13
举报
文章被收录于专栏:Python in AI-IOTPython in AI-IOT

设计了4个表,User,Fleed,Locator,Coordinate分别表示用户,轨迹服务,设备管理,历史轨迹。

其中每个用户可以有多个轨迹服务,一个轨迹服务可以有多个定位设备,不同设备的定位数据由coordinate_locator区分。

整个平台后台由Python开发。数据库的访问和操作使用了轻量级ORM框架sqlobject(也可以使用Sqlalchemy或Peewee等其他ORM框架)。表定义代码如下:

代码语言:python
复制
# -*- coding:utf-8 -*-
from sqlobject import *
import os
class User(SQLObject):
    user_name=StringCol(notNone=True)
    user_fleeds=MultipleJoin('Fleed',joinColumn="User")

class Fleed(SQLObject):
    fleed_name=StringCol(notNone=True,default='Untitled')
    fleed_user=ForeignKey('User')
    fleed__locators=MultipleJoin('Locator')
    
class Locator(SQLObject):
    locator_name=StringCol(notNone=True,default='Untitled')
    locator_fleed=ForeignKey('Fleed')
    locator_coordinates=MultipleJoin('Coordinate')

class Coordinate(SQLObject):
    coordinate_x=FloatCol(default=90)
    coordinate_y=FloatCol(default=90)
    coordinate_time=DateTimeCol(default=DateTimeCol.now())
    coordinate_locator=ForeignKey('Locator')
                                     
    
def initDatabase():
    connectionString='sqlite:./GPS_DB.db'
    con=connectionForURI(connectionString)
    sqlhub.threadConnection=con

def createTables():
    User.createTable(ifNotExists=True)
    Fleed.createTable(ifNotExists=True)
    Locator.createTable(ifNotExists=True)
    Coordinate.createTable(ifNotExists=True)

def deleteTables():
    User.dropTable(ifExists=True)
    Fleed.dropTable(ifExists=True)
    Locator.dropTable(ifExists=True)
    Coordinate.dropTable(ifExists=True)

if __name__=='__main__':
    
    initDatabase()
    #createTables()
    
    

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档