Open DigitalPlatform opened 5 years ago
dp2 系统采用了 dp2library 和 dp2kernel 模块分离的架构方式。新系统为了解决 dp2library 模块直接操作 SQL Server 的问题,可能需要让 dp2library 直接访问 SQL Server。
原来 dp2kernel 访问 SQL Server 的代码成果,可以变为用函数库的方式呈现。即,函数库内部功能还是高度聚合的。
可以采用 MySQL 和 PgSQL 两种数据库底层。如果觉得这样开发负担重,可以考虑简化为只用 PgSQL?
需要验证一下 PgSQL 对 JSON 记录格式的支持程度。这样可以延续 dp2 就实现了的灵活的册记录等结构,这样的结构是超越了二维表的。
为了模拟 dp2 数据库的多库结构,可以在数据记录里面提供一个记录路径(库名+ID)字段,逻辑上实现多库。当需要检索提取整个一个逻辑库的记录时,用这个字段进行限定和筛选即可。删除逻辑库的时候也是类似。
UNIMARC 和 MARC21 两种 MARC 格式都可以共存在同一个数据库中。
可以用数据库底层来解决单条记录的结构灵活性问题。比如用 JSON 或者 XML 等结构。注意研究这种结构是否方便进行统计。
订购记录和册记录等,应能自由改变归属,而不必复制记录。这样可以减少复制对象等麻烦。
读者借阅信息不必跟随读者记录和册记录存储。而是单独存储在一个地方。这样的好处是,Undo 借还操作比较简单 -- 因为只涉及到一条记录,不像以前那样涉及到两条记录的修改