使用者销售点 (POS) 应用程序

消费者销售点 (POS) 应用程序包括消费者在销售点直接或间接遇到的那些应用程序。 例如:出纳使用的终端、ATM 机和店内信息亭。 这些应用程序在远程站点收集数据,并将数据传输回中央位置,如总部或数据中心。 这些应用程序的共同点是:主要在销售点收集数据,然后将数据上载到总部,而不会发生冲突,因为单个远程用户(通常为客户或售货员)将更新特定的数据。

下面的关系图说明了数据在中央站点和远程位置之间双向流动的典型方案。

从商店向总部复制数据

Adventure Works Cycles 示例

Adventure Works Cycles 是一家虚构的制造公司,用于演示数据库概念和方案。有关详细信息,请参阅AdventureWorks 示例数据库

许多销售 Adventure Works Cycles 产品的零售店都使用销售点系统,这种系统可以接收来自中央站点的数据,并将数据传输到中央站点。 通常,只要更新只读产品定价和仓库库存数据,此数据就会发送到零售店。 而客户采购信息会从每个零售店传输到中央站点。

此方案的一般要求

POS 应用程序通常具有下列特征,而相应的复制解决方案必须具备这些特征:

  • 大多数数据在远程站点输入和更新。

  • 远程用户必须能够进行独立更新,而无需连接到中心站点。

  • 在某个远程站点更新的数据不会在其他任何站点更新,因此通常不会发生冲突。

  • 某些数据应仅在中央站点更新,例如产品说明表中的数据。

  • 用户在计划时间(如营业日结束时)同步数据。

  • 应用程序必须控制远程站点保持不同步状态的时间。

  • 某些表要求筛选,以便每个商店收到一个或多个表的不同数据。 例如,每个商店都只收到有关其库存产品的信息。

  • 同步数据时,应用程序可能会要求执行自定义业务逻辑。

  • 应用程序可能会要求通过 Internet 而非通过专用连接来实现数据同步。

下面的关系图说明了与此方案关联的筛选:

针对销售点应用程序的筛选

用于此方案的复制类型

MicrosoftSQL Server 用出版业的术语来说明复制系统的组件。 这些组件包括发布服务器、订阅服务器、发布、项目和订阅。 在上面的关系图中,中央站点为发布服务器。 中央站点的数据为发布,每个数据表为项目(项目也可以是其他数据库对象,如存储过程)。 每个销售点终端都是发布的订阅服务器,接收的架构和数据为订阅。 有关系统组件的详细信息,请参阅复制发布模型概述

SQL Server 针对不同的应用程序要求提供了不同类型的复制:快照复制、事务复制以及合并复制。此方案最好使用合并复制来实现,合并复制非常适合处理上述要求。 有关合并复制的详细信息,请参阅合并复制概述合并复制的工作机制

与此方案相关的合并复制选项

合并复制提供了多个选项用以处理本主题前面说明的要求。 下表列出了各种要求以及适用的合并复制选项。

  • 大多数数据在远程站点输入和更新。

    合并复制提供此项功能,无需指定任何单独的选项。

  • 远程用户必须能够进行独立更新,而无需连接到中心站点。

    合并复制提供此项功能,无需指定任何单独的选项。

  • 在某个远程站点更新的数据不会在其他任何站点更新,因此通常不会发生冲突。

    在 POS 应用程序中,通常可以避免冲突,因为由单个用户来更新特定的数据。 由于用户间的数据不会重叠,因此可以使用不重叠分区选项来优化性能。 有关详细信息,请参阅参数化行筛选器主题中的“设置‘分区选项’”部分。

    对于可能出现数据冲突的情况,合并复制提供了冲突检测和解决方法。 有关详细信息,请参阅检测并解决合并复制冲突

  • 某些数据应仅在中央站点更新,例如产品定价表中的数据。

    对于只能在发布服务器上更新的那些表,合并复制提供了仅供下载的项目。 有关详细信息,请参阅使用仅下载项目优化合并复制的性能

  • 用户应该不仅能够在计划时间同步数据,还能够按需同步数据。

    复制提供了两种订阅类型:推送订阅和请求订阅。请求订阅比较适用于按需同步。 有关订阅类型和计划同步的详细信息,请参阅订阅发布同步数据

  • 应用程序必须控制远程站点保持不同步状态的时间。

    使用合并复制,可以设置订阅过期时间,以确保在特定时间内同步所有订阅服务器。 有关详细信息,请参阅订阅过期和停用

  • 大多数表要求筛选,以便每个用户收到一个或多个表的不同数据。

    使用合并复制,可以对列和行进行筛选。 行筛选器可以是静态的,也可以是参数化的。 静态筛选器仅在创建发布时应用,它会生成一个数据集。 参数化筛选器在每次订阅服务器同步时应用,它会为每个订阅服务器生成不同的数据集。 POS 应用程序通常使用参数化筛选器,但也可以使用静态筛选器。 有关详细信息,请参阅为合并复制筛选已发布数据

  • 同步数据时,应用程序可能会要求执行自定义业务逻辑。

    使用合并复制,可以指定在同步期间执行的代码。 此代码可响应各种事件,并对正在同步的数据具有访问权限。 有关详细信息,请参阅在合并同步期间执行业务逻辑

  • 应用程序可能会要求通过 Internet 而非通过专用连接来实现数据同步。

    当使用 SQL Server Compact 3.5 SP1 时,将通过 HTTP 或 HTTPS 连接同步数据。对于其他版本的 SQL Server,可以使用 Web 同步,Web 同步要求使用 HTTPS 连接。 有关详细信息,请参阅合并复制的 Web 同步

实现此方案的步骤

若要实现此方案,必须先创建一个发布和一些订阅,然后对各个订阅进行初始化。 有关各步骤的详细信息,请单击下面的链接:

在对订阅进行了初始化且数据开始在发布服务器和订阅服务器之间流动之后,您最好查阅以下主题,了解常见管理任务和监视任务的有关信息: