2008-12-29 21 views
3

在代码中应该转换的地方?客户端,服务器,业务或数据库?在哪里做转换 - 时区,计量单位等

我们目前在我们的数据库中进行了时区和度量单位的转换,性能正在消耗我们,并且想要移动逻辑。你认为最好的位置在哪里?

谢谢

回答

5

我肯定会从数据库中获取该代码。只要有可能,您都希望将数据全部存储在一套通用的单元中。将您的时间数据存储为一个特定语言环境(通常是您自己的)是常见的。

我也不会把它放在业务层中,因为那样你会遇到需要使用不同地区的时间进行计算的情况,并且需要它们具有相同的起始参考。同样,你应该把它们都放在一个共同的基础上,这里最合乎逻辑的就是让这个基地成为你存储他们的任何地方。

我认为最合理的做法是有时间在显示它之前,在最后可能的时刻转换为用户的语言环境。这将它牢牢地放在GUI层中。

+0

绝对同意。此外,请确保您追踪用户和(工作人员)首选时区/偏移量,以转换回当地时间。我总是建议UTC/GMT作为基地区。 – devstuff 2008-12-29 19:14:48

2

通常这些是客户端/用户界面的选择。但是该首选项可以传递给服务器或业务规则。

我会在客户端做到规范化其他地方的数据。

编辑:

如果你有一个非常薄客户端和不想逻辑添加到它,然后找到你有代码/规则的/ etc,并将它们添加有未来的地方。找到最外面的/客户端代码,并把它放在那。

0

我们正试图在“尽可能早”的情况下(在我们的情况下,它是客户端连接的地方)完成它们,并在服务器上端到端统一数据。当然,当发回时,数据被适当地转换。

0

我不确定您的意思是“转换”。如果您的意思是本地化,那么传统上在GUI层完成。