嵌入数据库SQLite(2) - Android

 

5.2 SQLite数据库设计

5.2.1 SQLite的默认数据类型

大多数SQL数据库引擎使用静态类型。而SQLite使用动态类型。他们的主要的区别是:动态不用定义数据类型的长度。

 

序号

名称

说明

备注

1

NULL

该值是一个NULL值

 

4

INTEGER

该值是个带符号的整数,根据该值的大小在1,2,3,4,6,或8个字节的存储。

 

5

REAL

该值是一个浮点值,存储为8字节IEEE浮点数。

 

6

TEXT

该值是一个文本字符串,使用数据库编码(UTF-8,UTF-16BE或UTF-16LE)。

对应于char、varchar、varchar2

7

BLOB

该值是一个存储blob的数据。

 

 

注:

1.       布尔类型的数据,请使用Integer;把相应的值设置为0(false)或1(true)即可。

2.       日期和时间类型的数据

(1)       使用Text

例如:ISO8601("YYYY-MM-DD HH:MM:SS.SSS")。

(2)       使用Real

例如:儒略天数(天文学使用)

(3)       使用Integer

例如:Unix时间(起始1970-01-0100:00:00 UTC)

 

-------------------------------------------------------转载请注明:xiaobin_hlj80---- 


5.2.2 设计实例

我们以联系人管理为例子,来设计一个以联系人为核心表的若干数据表。

这个图表是根据PowerDesgner16.1的CDM创建的。

在使用的时候需要注意两点:

1.       在CDM中设置主键时

   Tool->Model Options...

选中Category中的“Model Settings”,在“Data Item”中的“Unique code”取消勾选。

2.       在CDM->PDM时

   Tool->Check Model...

在Options选项卡中,去掉“Entity Attribute”勾选

 

请看下图:

嵌入数据库SQLite(2) - Android_第1张图片

 

 

 

我们使用SQLite Manager来建数据库与数据表。

 

我使用的firefox当前版本为V15.0.1。

嵌入数据库SQLite(2) - Android_第2张图片

SQLite Manager当前的版本为V0.7.7。

嵌入数据库SQLite(2) - Android_第3张图片

 

 

关于:SQLite Manager是一个firefox的一个插件。可以在firefox的Add-ons搜索到,正常安装这个插件即可。

 

根据PDM的数据表,如下图:

 嵌入数据库SQLite(2) - Android_第4张图片

 

 

PowerDesigner现在还不支持SQLite,不过只要我们生成兼容SQL92的SQL语句即可。

生成SQL文件:

/*==============================================================*/
/* DBMS name:      MySQL 5.0                                    */
/* Created on:     2012-9-19 10:35:37                           */
/*==============================================================*/


drop table if exists ContactPerson;

drop table if exists ContactWay;

drop table if exists FamilyInfo;

drop table if exists IM;

drop table if exists bloodDict;

drop table if exists compInfo;

drop table if exists diplomaDict;

drop table if exists faithDict;

drop table if exists nationDict;

drop table if exists politicalDict;

drop table if exists sexDict;

drop table if exists statureDict;

drop table if exists telephoneComp;

/*==============================================================*/
/* Table: ContactPerson                                         */
/*==============================================================*/
create table ContactPerson
(
   firstName            text,
   middName             text,
   lastName             text,
   aliasName            text,
   birthday             date,
   sex                  int,
   nation               int,
   stature              int,
   bloodType            int,
   bodyWeight           text,
   diploma              int,
   endSchool            text,
   political            int,
   faith                int,
   govLabour            int,
   personID             text not null,
   compID               int,
   familyID             int,
   primary key (personID)
);

/*==============================================================*/
/* Table: ContactWay                                            */
/*==============================================================*/
create table ContactWay
(
   email                text,
   mobilePhone          text,
   contactID            int not null,
   personID             text,
   primary key (contactID)
);

/*==============================================================*/
/* Table: FamilyInfo                                            */
/*==============================================================*/
create table FamilyInfo
(
   peopleCount          int,
   state                text,
   province             text,
   city                 text,
   postalCode           text,
   streetAddr           text,
   telephones           int,
   familyID             int not null,
   personID             text,
   primary key (familyID)
);

/*==============================================================*/
/* Table: IM                                                    */
/*==============================================================*/
create table IM
(
   msnID                text,
   qqID                 text,
   momoID               text,
   miliaoID             text,
   weixinID             text,
   imID                 int not null,
   contactID            int,
   primary key (imID)
);

/*==============================================================*/
/* Table: bloodDict                                             */
/*==============================================================*/
create table bloodDict
(
   id                   int not null,
   name                 text,
   primary key (id)
);

/*==============================================================*/
/* Table: compInfo                                              */
/*==============================================================*/
create table compInfo
(
   name                 text,
   state                text,
   province             text,
   city                 text,
   postalCode           text,
   address              text,
   homepage             text,
   department           text,
   telephones           int,
   fax                  int,
   duties               text,
   compID               int not null,
   personID             text,
   primary key (compID)
);

/*==============================================================*/
/* Table: diplomaDict                                           */
/*==============================================================*/
create table diplomaDict
(
   id                   int not null,
   name                 text,
   primary key (id)
);

/*==============================================================*/
/* Table: faithDict                                             */
/*==============================================================*/
create table faithDict
(
   id                   int not null,
   name                 text,
   primary key (id)
);

/*==============================================================*/
/* Table: nationDict                                            */
/*==============================================================*/
create table nationDict
(
   id                   int not null,
   name                 text,
   primary key (id)
);

/*==============================================================*/
/* Table: politicalDict                                         */
/*==============================================================*/
create table politicalDict
(
   id                   int not null,
   name                 text,
   primary key (id)
);

/*==============================================================*/
/* Table: sexDict                                               */
/*==============================================================*/
create table sexDict
(
   id                   int not null,
   name                 text,
   primary key (id)
);

/*==============================================================*/
/* Table: statureDict                                           */
/*==============================================================*/
create table statureDict
(
   id                   int not null,
   name                 text,
   primary key (id)
);

/*==============================================================*/
/* Table: telephoneComp                                         */
/*==============================================================*/
create table telephoneComp
(
   id                   int not null,
   compID               int,
   name                 text,
   primary key (id)
);

alter table ContactPerson add constraint FK_FK_ContactPerson_FamilyInfo foreign key (familyID)
      references FamilyInfo (familyID) on delete restrict on update restrict;

alter table ContactPerson add constraint FK_FK_ContactPerson_compInfo foreign key (compID)
      references compInfo (compID) on delete restrict on update restrict;

alter table ContactWay add constraint FK_FK_ContactPerson_ContactWay foreign key (personID)
      references ContactPerson (personID) on delete restrict on update restrict;

alter table FamilyInfo add constraint FK_FK_ContactPerson_FamilyInfo foreign key (personID)
      references ContactPerson (personID) on delete restrict on update restrict;

alter table IM add constraint FK_FK_ContactWay_IM foreign key (contactID)
      references ContactWay (contactID) on delete restrict on update restrict;

alter table compInfo add constraint FK_FK_ContactPerson_compInfo foreign key (personID)
      references ContactPerson (personID) on delete restrict on update restrict;

alter table telephoneComp add constraint FK_FK_compInfo_telephoneComp foreign key (compID)
      references compInfo (compID) on delete restrict on update restrict;

更改成符合SQLite的脚本(sql):

/*==============================================================*/
/* DBMS name:      SQLite 3.7.14                                */
/* Created on:     2012-9-19                                    */
/*==============================================================*/


drop table if exists ContactPerson;

drop table if exists ContactWay;

drop table if exists FamilyInfo;

drop table if exists IM;

drop table if exists bloodDict;

drop table if exists compInfo;

drop table if exists diplomaDict;

drop table if exists faithDict;

drop table if exists nationDict;

drop table if exists politicalDict;

drop table if exists sexDict;

drop table if exists statureDict;

drop table if exists telephoneComp;

/*==============================================================*/
/* Table: ContactPerson                                         */
/*==============================================================*/
create table ContactPerson
(
   firstName            TEXT,
   middName             TEXT,
   lastName             TEXT,
   aliasName            TEXT,
   birthday             TEXT,
   sex                  INTEGER,
   nation               INTEGER,
   stature              INTEGER,
   bloodType            INTEGER,
   bodyWeight           TEXT,
   diploma              INTEGER,
   endSchool            TEXT,
   political            INTEGER,
   faith                INTEGER,
   govLabour            INTEGER,
   personID             TEXT not null,
   compID               INTEGER,
   familyID             INTEGER,
   primary key (personID),
   foreign key (compID) references compInfo(compID)
   foreign key (familyID) references familyInfo(familyID)
);

/*==============================================================*/
/* Table: ContactWay                                            */
/*==============================================================*/
create table ContactWay
(
   email                TEXT,
   mobilePhone          TEXT,
   contactID            INTEGER not null,
   personID             TEXT,
   primary key (contactID),
   foreign key (personID) references ContactPerson(personID)
);

/*==============================================================*/
/* Table: FamilyInfo                                            */
/*==============================================================*/
create table FamilyInfo
(
   peopleCount          INTEGER,
   state                TEXT,
   province             TEXT,
   city                 TEXT,
   postalCode           TEXT,
   streetAddr           TEXT,
   telephones           INTEGER,
   familyID             INTEGER not null,
   personID             TEXT,
   primary key (familyID),
   foreign key (personID) references ContactPerson(personID)
);

/*==============================================================*/
/* Table: IM                                                    */
/*==============================================================*/
create table IM
(
   msnID                TEXT,
   qqID                 TEXT,
   momoID               TEXT,
   miliaoID             TEXT,
   weixinID             TEXT,
   imID                 INTEGER not null,
   contactID            INTEGER,
   primary key (imID),
   foreign key (contactID) references ContactWay(contactID)
);

/*==============================================================*/
/* Table: bloodDict                                             */
/*==============================================================*/
create table bloodDict
(
   id                   INTEGER not null,
   name                 TEXT,
   primary key (id)
);

/*==============================================================*/
/* Table: CompInfo                                              */
/*==============================================================*/
create table 	CompInfo
(
   name                 TEXT,
   state                TEXT,
   province             TEXT,
   country              TEXT,
   postalCode           TEXT,
   address              TEXT,
   homepage             TEXT,
   department           TEXT,
   telephones           INTEGER,
   fax                  INTEGER,
   duties               TEXT,
   compID               INTEGER not null,
   personID             TEXT,
   primary key (compID),
   foreign key (personID) references ContactPerson(personID)
);

/*==============================================================*/
/* Table: diplomaDict                                           */
/*==============================================================*/
create table diplomaDict
(
   id                   INTEGER not null,
   name                 TEXT,
   primary key (id)
);

/*==============================================================*/
/* Table: faithDict                                             */
/*==============================================================*/
create table faithDict
(
   id                   INTEGER not null,
   name                 TEXT,
   primary key (id)
);

/*==============================================================*/
/* Table: nationDict                                            */
/*==============================================================*/
create table nationDict
(
   id                   INTEGER not null,
   name                 TEXT,
   primary key (id)
);

/*==============================================================*/
/* Table: politicalDict                                         */
/*==============================================================*/
create table politicalDict
(
   id                   INTEGER not null,
   name                 TEXT,
   primary key (id)
);

/*==============================================================*/
/* Table: sexDict                                               */
/*==============================================================*/
create table sexDict
(
   id                   INTEGER not null,
   name                 TEXT,
   primary key (id)
);

/*==============================================================*/
/* Table: statureDict                                           */
/*==============================================================*/
create table statureDict
(
   id                   INTEGER not null,
   name                 TEXT,
   primary key (id)
);

/*==============================================================*/
/* Table: TelephoneComp                                         */
/*==============================================================*/
create table TelephoneComp
(
   id                   INTEGER not null,
   compID               INTEGER,
   name                 TEXT,
   primary key (id),
   foreign key (compID) references compInfo(compID)
);

-------------------------------------------------------转载请注明:xiaobin_hlj80----

你可能感兴趣的:(数据库,sqlite,table,null,Integer,delete)