设计模式 - 我应该在哪里操作从数据库中检索的String。离它更近或更远

时间:2013-09-20 11:37:13

标签: java design-patterns refactoring

我们有一个基于Java的Web应用程序。 出于我们的内部目的,动物名称作为AnimalName_GenusName存储在数据库中。

例如:Dog_Canis

我们使用Dog_Canis这样的信息发送到“呼叫”网页。

public class Animal {
        private String name;
        private Long id;
        private String genusName;
        private String species;
        //.......

        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getGenusName() {
            return genusName;
        }
        public void setGenusName(String genusName) {
            this.genusName = genusName;
        }

        //......

    }

现在,我们希望将信息显示到调用网页,并删除Genus名称。

要求是有一组模块来显示信息,以及一组模块,用于在保存时删除附加到它的属名。

我们计划在将信息发送到呼叫页面时删除过滤器并删除信息。我们可以通过定义匹配的URL或Servlet来定义过滤器中涉及的模块。

这是正确的方法,对于10个其他列的100000数据执行此操作的成本是多少?

还有其他更好的方法吗?我想知道在动物类中使用不同的方法来提供剥离的信息。但这意味着所有模块都必须重新考虑,而不是一个不错的选择。

1 个答案:

答案 0 :(得分:2)

更好的方法是将“AnimalName”和“GenusName”存储在不同的列中,因为它们是根本不同的数据。这可能是很多初期投资,但如果您的应用程序将会存在很长时间,那么它是值得的。

由于您不打算这样做,我会尝试尽可能靠近数据库进行剥离。离您获得的数据库越远,您就越有可能需要复制工作(例如,如果您编写新客户端)。

除了你,你可以确定性能影响。我们没有足够的有关您的代码或硬件的信息。