This repository has been archived by the owner on Jul 10, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 7
cn database table
redraiment edited this page Jun 1, 2014
·
1 revision
为了正常使用jActiveRecord
,对表结构等做了如下约束:
- 每张表的主键,名称必须为
id
,类型必须为自增的整数。 - 每张表必须包含
timestamp
类型的created_at
和updated_at
,分别用于保存创建的时间和更新的时间。
为保持代码的统一,希望使用jActiveRecord
的开发者遵循如下建议:
- 表名用下划线分隔的小写复数单词,例如users、blog_tags。
- 关联
hasOne
和belongTo
的名称用下划线分隔的小写单数单词,例如user、blog_tag。 - 关联
hasMany
和hasAndBelongToMany
的名称用下划线分隔的小写复数单词,例如users、blog_tags。 -
Table
类型的变量名以骆驼法命名、首字母大写的单数单词,例如User、BlogTag。 -
Record
类型的变量名以骆驼法命名、首字母小写的单数单词,例如user、blogTag。 -
List<Record>
类型的变量名以骆驼法命名、首字母小写的复数单词,例如users、blogTags。 - 外键为单数形式的表名加上“_id”后缀,例如
user_id
、blog_tag_id
。
正因为jActiveRecord
对表结构做了一些约定,推荐使用DB#createTable(String name, String... columns)
来创建表。其中表名可由[catalog.][schema.]table
三部分组成,catalog
和schema
是可选的,下文所有表名都符合这一规则。此外createTable
还会自动创建自增长的id
列,以及created_at
与updated_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");
- 博客:zzp.me
- 微博:@redraiment