教程假定 Adaptive Server Enterprise 服务器上安装了 pubs2 示例模式。可以将 Adaptive Server Enterprise 服务器安装在本地计算机上,也可以使用 Sybase Open Client 远程访问 Adaptive Server Enterprise 服务器。
此处将 pubs2 示例模式用作统一数据库模式。它包含有关书店、标题、作者、出版商和销售等方面的信息。下表对 Adaptive Server Enterprise 数据库中的各个表进行说明:
表 | 说明 |
---|---|
au_pix | 作者照片。 |
authors | 系统中不同 TITLES 的作者。 |
discounts | 特定 STORES 的各种折扣记录。 |
sales | 每条销售记录都是某个特定书店完成的一次销售。 |
salesdetail | 包含有关某一特定销售中的不同 TITLES 的信息。 |
stores | 每条书店记录都表示系统中的一家书店或分店。 |
titleauthor | 包含有关 TITLES 和 AUTHORS 之间的创作对应关系的信息。 |
titles | 系统中所有不同书籍的记录。 |
blurbs、publishers 和 roysched | 包含此演示中不需要的信息。 |
如果每个书店都拥有统一数据库的完整副本,既没有必要,又会造成效率低下。而远程模式虽然使用相同的表名称,但仅包含与特定书店相关的信息。为了实现这一点,可按以下方式将远程模式设计成统一数据库的子集:
统一表 | 远程表 |
---|---|
au_pix | 包括所有行。 |
authors | 包括所有行。 |
discounts | 按 stor_id 过滤。 |
sales | 按 stor_id 过滤。 |
salesdetail | 按 stor_id 过滤。 |
stores | 按 stor_id 过滤。 |
titleauthor | 包括所有行。 |
titles | 包括所有行。 |
blurbs | 远程表中不包含该行。 |
publishers | 远程表中不包含该行。 |
roysched | 远程表中不包含该行。 |
各家书店都需要保存所有标题和作者的记录,以便顾客可以搜索书店的库存情况。但是,书店不需要保留有关出版商和版税的信息,所以这些信息不对各个书店同步。各家书店需要保存有关销售和折扣的信息,但是不需要与其它书店相关联的此类信息。这一点可以通过根据书店标识符来过滤行而实现。
如果远程数据库不需要某些列,也可以从表中挑出一个列子集。
下一步是选择每个表的同步方向。您应分别考虑远程数据库需要读取哪些信息以及远程数据库需要创建、更改或删除哪些信息。在本例中,书店只需具有对作者和标题列表的访问权限,而从不会向系统输入新作者。这样就限制了始终需要从位于总部的统一数据库将作者和标题输入系统。但是,书店需要能够定期记录新的销售情况。这些因素决定了各表具有以下的同步方向:
表 | 同步 |
---|---|
titleauthor | 仅下载到远程表。 |
authors | 仅下载到远程表。 |
au_pix | 仅下载到远程表。 |
titles | 仅下载到远程表。 |
stores | 仅下载到远程表。 |
discounts | 仅下载到远程表。 |
sales | 下载和上载。 |
salesdetail | 下载和上载。 |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |