Dapper(番外)系列-数据库设计PD + Sqlite

文章目录

  • 缘起
  • PD连接Sqlite的解决方案
  • PD的Sqlite的设计方案
    • 问题
    • 解决后的Show
    • 解决之道

缘起

最近自己做点好用的小程序比较习惯用sqlite,sqlite目前个人觉得自己用特别方便,性能也可以,而且win也支持。我做数据库设计一般用PD(powerDesigner,官网:http://powerdesigner.de/en/),截止20200121看到也就是16.5的版本。但是在做数据库设计的时候,看到有2个大坑,具体如下:

  1. 设计好的表直接导入到sqlite数据库中。这个网上很多,已解决。
  2. PD没有对应的sqlite设计模型,具体是选用ODBC或者其他的如mysql, sqlserver2000,2005,2008之类的,也是问题较多。毕竟语法还是有较大差异的。无奈这个问题只能自己解决了,不过目前已经解决了,下面是详细的解决思路。

PD连接Sqlite的解决方案

  1. 安装Sqlite3 ODBC驱动,此处安装32位的,因为我的Powerdesigner(16.5)也是32位的,如果安装sqliteodbc-64位的,会找不到相关驱动的。此处需要注意。
    需要32位和64位驱动,参见如下:
    链接:https://pan.baidu.com/s/1QWmvwQCQPi1t9UlPch_cMA
    提取码:azow
  2. sqliteodbc-32安装。安装和其他安装一样,此处略!
    Dapper(番外)系列-数据库设计PD + Sqlite_第1张图片
    安装之后,在PD中:【菜单】 → \rightarrow 【Database】 → \rightarrow 【Connect】,选择ODBC和Configure按钮。 在打开的【Configure Data Coneections】窗口中选择“Add Data Source”快捷键,选择【系统用户数据源】
    在这里插入图片描述
    在最下面就能看到已经安装好的“Sqlite3 ODBC驱动”,选择
    Dapper(番外)系列-数据库设计PD + Sqlite_第2张图片
    创建PDM的时候选择ODBC3.0,就能连接sqlite的odbc数据源了。
    Dapper(番外)系列-数据库设计PD + Sqlite_第3张图片

PD的Sqlite的设计方案

问题

使用ODBC3+sqlite odbc可以把设计的数据表直接生成到sqlite数据库中。但是又出了一个坑,powerdesigner(我的版本16.5)没有sqlite数据模型,特别是使用到“自增长字段,主键”情况下,PD没有提供相关的DBMS模型选择。选用ODBC3模型时,字段属性中就没有identify这个选项,而且选择主键之后,语法也和sqlite的语法有差异。
无奈只能自己研究解决了。耗费了基本上是6-8小时,这个问题已经解除,有需要的朋友,可以从我的共享百度云中下载sqlite.xdb文件,Copy到:%PowerDesigner%/ Resource Files\DBMS,然后重新打开PD即可。
链接:https://pan.baidu.com/s/1UzJFsX7Wo83JNZuNFz9j7A
提取码:xdxb

解决后的Show

Dapper(番外)系列-数据库设计PD + Sqlite_第4张图片
Dapper(番外)系列-数据库设计PD + Sqlite_第5张图片
Dapper(番外)系列-数据库设计PD + Sqlite_第6张图片
Dapper(番外)系列-数据库设计PD + Sqlite_第7张图片
但是后面有个功能没有实现,具体如下:
1) 设置pk后,自动增加主键的唯一索引(UPK),这样能增强查询性能。
2) 增加/删除 index

这两个问题以后有时间再研究了,如果有完善好这2个功能的朋友,也请多多交流下。在此感谢了!!

解决之道

先查看了sqlite的建表语法如下:

create table Student
(
sId integer not null primary key autoincrement,
sCode varchar(50),
sName varchar(50)
);

网上推荐pd的sqlite建模是,选用odbc3,但是ODBC3模式的表设计中“字段属性”中没有identify这个选项,怎么解决?后来尝试从mysql .xdb上修改成了sqlite的建模模型,发现可以解决这个问题。修改后如下:
Dapper(番外)系列-数据库设计PD + Sqlite_第8张图片
Dapper(番外)系列-数据库设计PD + Sqlite_第9张图片
基本上生成column的语法就在这里,大家可以研究下。下面的就是index,或者key之类的。
OK! 目前先解决下这个问题,后面有时间再填其他坑了!

你可能感兴趣的:(平台之-.Net)