微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于Dragonboard 410c的智能魔镜设计(2)——如何设计数据库

基于Dragonboard 410c的智能魔镜设计(2)——如何设计数据库

时间:02-13 来源:互联网 点击:

本篇blog将在智能魔镜设计(1)整体方案的基础上,完成对基于dragonboard 410c的智能魔镜的数据库的设计,首先我们根据方案分析,可以知道,在智能魔镜上需要保持用户信息、保持消息信息,因此,基本可以构建一个用户表userInfo和一个消息表pushInfo两个表就可以对整个智能魔镜的数据进行管理,可以方便的调用和存储相关的数据,具体的数据库设计方案如下:

上述两个表中,userInfo表用于存储系统中的用户信息,主要包括ownerID, 用户ID,Name,用户名,password 用户密码,保存的是MD5密码摘要信息,email,用户邮箱、phone 用户手机、haarValue,用户脸部特征值,pushInfo表为推送消息表,系统中所有的推送消息都被保存在该表中,其中infoID为消息的ID,ownerID为消息的拥有者的ID,表示这条消息是属于哪个用户的,系统将在后续根据这个值将消息推送给该用户,pushID,推送者,表示这条消息是由哪个用户推送过来的,系统根据该值识别推送消息的用户,infoType,消息类型,该值为0或者1 ,位0的时候表示是普通的文本消息,填写infoSubject和infoContent两个项目即可,为1的时候为视频或者音频消息,此时视频文件路径将被保存到filePath字段中,pushTIme,表示推送的时间,infoValidityTIme表示的是消息的有效期,istop表示消息是否置顶,如果该值为1表示消息置顶,将优先推送该消息,viewWeight表示消息的显示权值,显示完的消息权值将减少为0不再显示。

基于上述设计,本文使用Python sqlite3 接口完成了创建该数据库的编码,具体代码如下:

 import sqlite3
import os.path
import random
import TIme
#MagicMirrorDB = sqlite3.connect("./MaigicMirrorDB.db")
#MagicMirrorDB.execute("")
#create userInfo
class MagicMirrorDB:
    def __init__(self,dbPath):
        self.DB=sqlite3.connect(dbPath)
        self.cu=self.DB.cursor()
        self.DB.execute("")
        #self.initTable()
        #self.insertTestData(5,20)

    def initTable(self):
        try:
            #create userInfo table
            self.DB.execute("create table userInfo(userID integer primary key autoincrement,\
                                name nvarchar(50),\
             password nvarchar(20),\
                                email nvarchar(50),\
       phone nvarchar(50),\
                                haarValue nvarchar(50),\
                                avatarImg nvarchar(50))"
                                )
           #create pushInfo table
           #********************pushInfo table**********************#
           # infoType  0 text info, 1 video info 
           # 
            self.DB.execute("create table pushInfo(infoID integer primary key autoincrement,\
                                ownerID integer,\
                                pushID integer,\
                                infoType integer,\
                                infoSubject nvarchar(50),\
                                infoContent nvarchar(100),\
                                filePath nvarchar(1000),\
                                pushTIme float,\
                                infoValidityTime float,\
                                isTop integer,\
                                viewWeight integer\
                           )")
           # self.DB.execute("create table systemStatus(statusName nvarchar(30),statusValue integer,statusParam integer ,statusDiscirption nvarchar(50))")  
                               
        except:
            print("table is already create")

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top