与其他开发人员一起,我已经开始创建一个托管“CRM风格”应用程序的旅程,该应用程序将迎合企业级业务。这些企业将远程访问我们的应用程序,因此应用程序的托管性质将需要某些功能。例如,为了保证一定程度的专业服务,必须遵循以下要求:
由于这些问题以及我作为负责服务器端开发的开发人员的角色,我对我早期做出的选择非常感兴趣。例如,关于时区和语言,是否存在与我选择的数据库或数据字段相关的问题?我是否选择在整个应用程序中使用UTC时间戳或日期字段,如果有的话,是否有标准格式?另外,对于不同的语言,我是否应该确保数据以UTF-8或unicode的形式存储在数据库中?
我真的想避免放下系统的信息结构,只是为了后来发现一个基本的决定不正确或不够大,足够宽,足够聪明等等。有人能指出我关于这些基本的正确方向吗?早期的决定?
编辑_好我欣赏广泛的回应,现在我看到我的问题有点过于不具体。我想关注问题中存在的更具体的元素,例如如何选择存储UTC日期/时间的正确格式或如何保存我的文本数据(我是否指定了UTF格式?)< / p>
答案 0 :(得分:1)
如果您的目标是企业CRM,那么您将需要非常高水平的可定制性和与各种系统的集成。你会在设计上犯错误。你唯一的希望是隔离每一小段代码,以便你以后有机会修复它。
简而言之,基本的软件工程原则是您最好的选择。
答案 1 :(得分:0)
由于你没有提到你对这个问题的看法,你可能会发现我的答案或部分内容相当基本。
答案 2 :(得分:0)
没有任何东西被存储为“unicode”,因为这是一个抽象的概念。 Unicode总是存储在某种unicode转换格式(UTF)中(或者是UCS,但我从来没有看到过在某处使用过)。最常用的UTF是UTF-8,但我建议使用你的平台的native / default。 wikipedia
答案 3 :(得分:0)
您正在讨论的内容称为多租户应用程序,其中您具有与具有逻辑或物理数据分离的多个客户(租户)使用的相同代码库。记住发展的基本规则:灵活性与复杂性有关。制作系统越灵活,它就越复杂。
RE:UTC
对于存储诸如何时进行呼叫以及何时召开会议等内容的CRM应用程序,我肯定会将所有这些存储在UTC中并让用户设置其本地时区。但是,您可能会遇到与时区无关的日期,对于那些日期,我会存储输入的日期。
RE:Unicode
是的,我会对所有用户输入的数据使用Unicode。但是,这不会让你本地化。例如,如果对于一家公司,您有一位香港用户输入中文文本,而阿姆斯特丹的用户用荷兰语输入文本,则您不会自动翻译。日期和数字格式之类的东西可以进行本地化,但原始文本就像下拉列表中使用的名称一样,可以是一项本地化的杂务。