逐条回应(@Photon 有什么问题,你现在最好理解清楚,因为我们几个人可能都有不同的理解,现在最好统一这种理解,然后写需求文档):
1、历史版本我开始理解的是用户每编辑一次产生一个新的Html文件。现在采用你意见,即只对中间文件xhtml进行版本控制,同时使用VCS工具(具体采用什么工具,你到时写出来,具体的部署以后讨论),这样就不需要我们进行版本控制了,同时也不使用数据库里的历史表(历史表里主要存放一个电子书的所有历史版本,版本的创建时间,创建者,文件存放路径等信息,但这样有个问题,我们到底应该不应该保存这些历史版本的信息,如创建用户,时间等信息,VCS工具有没有这个功能?存放这些信息的好处在于后续的外围扩展,你可以知道那些用户的编辑有价值,方便我们把系统做成一个类SNS的系统,加强用户间的交流。)。
2、这个理由我赞同,即:不需要用户每次编辑我们都给他生成,如果这样的话,有人破坏影响会不可控。所有我们要做一个定时任务,可以选择每周,或者每月,或者几天产生一次,并且选择在午夜处理这些任务。同时当用户请求最新版时(这个可以在界面上做一个投票按钮,一个用户只能每天投票一次,当票数超过一定程度时【如5次】,我们就调用后台系统产生最新版的所有格式的电子书【EPUB与MOBI】,并且在页面的下载按钮下显示电子书的版本为最新版并加一个生成时间戳,这样就可以控制用户的行为了。)
3、这个我之前在数据库中加了一个diff表(存放电子书编号,两个相近历史版本的电子书编号,差异文件的存放地址,主要是用来给后台管理人员管理电子书用的,这样管理员就可以清楚的知道每个电子书的变化历史),如果采用VCS工具,我后台管理员怎么才能调用出两个历史版本的差异?就是说你不在数据库存放这些信息,我前台系统怎么调用出VCS的这些信息并且反馈给管理员(普通用户需要不需要知道这些差异,如果需要,怎么在界面里像mediawiki一样在每个文章后面显示出各个版本的差异?我认为我们应该在每个电子书页面的一个区域把这些历史版本的差异显示出来,方便普通用户编辑。)?这个是我们要讨论清楚的。
4、你所说的SVN服务是不是和我们的系统在同一个Server上?SVN的搭建谁来做?如果不和系统在一个Server上,那么把SVN部署到哪里?SVN有个本地copy是不是指SVN里存放这所有电子书所有版本的xhtml?如果SVN不和系统在一个Server上,还的占用流量,你得把这个差异文件发送给系统Server,Server在发送给用户,如果SVN和系统在一个Server上,那么就需要很大的存储来存放本地copy了。
5、数据库里已经在电子书表里有下载路径了,现在字段的长度设置在100个字符,不知道各个网盘的存放路径有多长,如果很长的话,需要把这个字段调正大一些,所以我们要确定这个字段的长度。
6、独立的客户端开发可以放到后续开发里,如果后台程序开发快的话,你们就去开发个客户端(支持那些平台?什么语言开发?),绕开VPS的话,还是那个问题,我们的SVN放在哪?
PS:你们后台采用什么语言来开发?开发平台与OS是什么?(前台我们统一成Linux,VPS上是ArchLinux x86_64)
在 2012年10月3日星期三UTC+8下午1时56分30秒,Fan Yang写道: