用delphi7 + sql server 2000实现一个小型分布式图书馆系统的数据库系统数据必须存放在至少3个站点上,数据的划分对用户完全透明。测试建议如下:
1)三个场地:命名site1,    site2,      site3  2)一个逻辑表的四个片段: 
                   db1:site1
                   db2:site2
                   db3:site3
                   db4:site13)当指一个逻辑表的分片时, 用表达形式
           tableName@dbi  (I=1,2,3,4)4) 这种表达方式可以扩充: (m 为场地数, n 为分片数)
           dbi:sitej (I=1,2,3,…n;   j=1,2,3,….m;)
           tableName@dbi(I=1,2,3,…n)   a)crteate
       create testdb
       create table   (列名称, 关键字, 外码, 其他约束等)
            LIBRARY     
            BOOKSS
            CUSTOMERSS
            READER_LIST
   b)fragment
            LIBRARY:   不划分, 放置在   db1     
            BOOKSS: 
              按照书的编号和类型分别放置在db1,db2,db3, db4
            CUSTOMERSS
              按照图书卡号分别放置在db1,db2,db3, db4
            READER_LIST
              按照图书卡号和图书编号分别放置在db1,db2,db3, db4
   c)insert
         用不同的表,先用select查看信息, 在db1,db2,db3, db4各插入一条, 检查相应的场地,看结果是否正确
   d)delete
         用不同的表,先用select查看信息,在db1,db2,db3, db4各删除一条, 检查相应的场地,看结果是否正确
   e)select
         实现上述表格分片透明、位置透明、局部数据模型透明的查询)
--------------------------------------
目前本地数据库已用delphi建好,不知应怎样实现全局字典与数据分片?如何实现对不同站点的选择查询?
诚请各位高手给予提示:)

解决方案 »

  1.   

    具体实现真人还没教到;^_^
    个人认为:
        全局字典中应该存储各场地的数据表和存储的分片关系属性;
    在insert和update,select时直接从全局字典中得到各数据记录需要存储或者搜索的场地情况;
    而不是如楼主所描述的插入到各场地后再对比;
    这样好像增加了网络流量和数据处理时间;仅供参考