Skip to content
This repository has been archived by the owner on Jul 10, 2024. It is now read-only.

cn database table

redraiment edited this page Jun 1, 2014 · 1 revision

约定

为了正常使用jActiveRecord,对表结构等做了如下约束:

  • 每张表的主键,名称必须为id,类型必须为自增的整数。
  • 每张表必须包含timestamp类型的created_atupdated_at,分别用于保存创建的时间和更新的时间。

为保持代码的统一,希望使用jActiveRecord的开发者遵循如下建议:

  • 表名用下划线分隔的小写复数单词,例如users、blog_tags。
  • 关联hasOnebelongTo的名称用下划线分隔的小写单数单词,例如user、blog_tag。
  • 关联hasManyhasAndBelongToMany的名称用下划线分隔的小写复数单词,例如users、blog_tags。
  • Table类型的变量名以骆驼法命名、首字母大写的单数单词,例如User、BlogTag。
  • Record类型的变量名以骆驼法命名、首字母小写的单数单词,例如user、blogTag。
  • List<Record>类型的变量名以骆驼法命名、首字母小写的复数单词,例如users、blogTags。
  • 外键为单数形式的表名加上“_id”后缀,例如user_idblog_tag_id

创建表

正因为jActiveRecord对表结构做了一些约定,推荐使用DB#createTable(String name, String... columns)来创建表。其中表名可由[catalog.][schema.]table三部分组成,catalogschema是可选的,下文所有表名都符合这一规则。此外createTable还会自动创建自增长的id列,以及created_atupdated_at

DB dbo = DB.open("URL");
Table User = dbo.createTable("users", "name text", "age integer");

删除表

使用DB#dropTable(String name)可删除指定的表:

DB dbo = DB.open("URL");
dbo.dropTable("users");

访问表

如果表已存在,使用DB#active(String name)可获得相应的表对象,同一张表亦可获取多次。

DB dbo = DB.open("URL");
Table User = dbo.active("users");

创建索引

使用DB#createIndex(String name, String table, String... columns)可创建索引:

DB dbo = DB.open("URL");
dbo.createIndex("user_index", "users", "id");

删除索引

使用DB#dropIndex(String name, String table)可删除索引:

DB dbo = DB.open("URL");
dbo.dropIndex("user_index", "users");
Clone this wiki locally