CustDB 数据库中的表定义是 SQL Anywhere 9 安装目录的 Samples\MobiLink\CustDB 子目录中的特定于统一数据库类型的文件。
统一数据库和远程数据库都包含以下五个表,不过这些表在两个数据库中的定义稍有不同。
ULCustomer 表包含一个客户列表。
在远程数据库中,ULCustomer 表包含下面几列:
cust_id 保存用于标识客户的唯一整数的主键列。
cust_name 长度为 30 个字符的字符串,用以保存客户名称。
在统一数据库中,ULCustomer 还包含以下附加列:
last_modified 包含上次修改该行的时间的时间戳。在进行基于时间戳的同步时将用到此列。
ULProduct 表包含一个产品列表。
在远程数据库和统一数据库中,ULProduct 表包含下面几列:
prod_id 保存用于标识产品的唯一整数的主键列。
price 标识单价的整数。
prod_name 长度为 30 个字符的字符串,用以保存产品名称。
ULOrder 表包含一个订单列表,包括有关下订单的客户、接收订单的职员以及所订购产品的详细信息。
在远程数据库中,ULOrder 表包含下面几列:
order_id 保存用于标识订单的唯一整数的主键列。
cust_id 引用 ULCustomer 的外键列。
prod_id 引用 ULProduct 的外键列。
emp_id 引用 ULEmployee 的外键列。
disc 包含订单折扣的整数。
quant 包含产品定购数量的整数。
notes 长度为 50 个字符的字符串,包含订单的注释。
status 长度为 20 个字符的字符串,用以描述订单的状态。
在统一数据库中,ULOrder 还包含以下附加列:
last_modified 包含上次修改该行的时间的时间戳。在进行基于时间戳的同步时将用到此列。
ULOrderIDPool 表是 ULOrder 的主键池。
在远程数据库中,ULOrderIDPool 表包含下面几列:
pool_order_id 保存用于标识订单 ID 的唯一整数的主键列。
在统一数据库中,ULOrderIDPool 还包含以下附加列:
pool_emp_id 一个整数列,包含订单 ID 被指派到的远程数据库的所有者的职员 ID。
last_modified 包含上次修改该行的时间的时间戳。
ULCustomerIDPool 表是 ULCustomer 的主键池。
在远程数据库中,ULCustomerIDPool 表包含下面几列:
pool_cust_id 保存用于标识客户 ID 的唯一整数的主键列。
在统一数据库中,ULCustomerIDPool 还包含以下附加列:
pool_emp_id 一个整数列,包含用于在远程数据库生成的新雇员的雇员 ID。
last_modified 包含上次修改该行的时间的时间戳。
下面的表仅包含在统一数据库中:
ULIdentifyEmployee_nosync 表仅存在于统一数据库中。它包含如下所示的一列:
emp_id 该主键列包含一个代表职员 ID 的整数。
ULEmployee 表仅存在于统一数据库中。它包含一个销售职员列表。
ULEmployee 表包含下面几列:
emp_id 保存用于标识职员的唯一整数的主键列。
emp_name 长度为 30 个字符的字符串,用以保存职员名称。
ULEmpCust 表控制将下载哪些客户的订单。如果职员需要新客户的订单,则插入职员 ID 和客户 ID 将会强制下载该客户的订单。
emp_id ULEmployee.emp_id 的外键。
cust_id ULCustomer.cust_id 的外键。主键包括 emp_id 和 cust_id。
action 一个字符,用于确定是否应该从远程数据库中删除职员记录。如果职员不再需要客户的订单,则设置为 D(删除)。如果仍然需要订单,则设置为 NULL。
这种情况下必须使用逻辑删除,这样统一数据库能够识别从 ULOrder 表中删除哪些行。一旦下载完删除后,该职员的 action 字段为 D 的所有记录也可以从统一数据库中删除。
last_modified 包含上次修改该行的时间的时间戳。在进行基于时间戳的同步时将用到此列。
这些表仅存在于统一数据库中。它们是为了解决冲突,所含的列与 ULOrder 相同。在 Adaptive Server Anywhere 和 Microsoft SQL Server 中,它们是临时表。在 Adaptive Server Enterprise 中,它们是普通表和 @@spid。DB2 和 Oracle 没有临时表,因此 MobiLink 需要能够识别哪些行属于同步用户。由于这些表都是基表,那么如果有 5 个用户正在同步,他们每个人都需要同时在这些表中拥有一行。
有关 @@spid 的详细信息,请参见变量。
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。