我想将来自特定类(“MyClass”)的信息存储在数据库中。所以,我有两个选项:
哪种方法最好? 我担心将来更改MyClass定义。因此,如果MyClass发生更改,我将无法从现有表中反序列化二进制对象。另一方面,创建新表似乎更复杂,并且在MyClass更改时也需要修改表定义。
答案 0 :(得分:2)
将您的类保留在每个属性具有列的表中。这为您提供了更多的控制,并且可以节省您编写大量代码,因为数据库引擎专门用于读取和写入数据。
想一想:如果使用序列化,您将如何检索与特定搜索值匹配的一组行的数据?唯一的方法是读取每一行,反序列化它,测试搜索条件,然后继续读到下一条记录,直到你读完所有这些。
使用数据库,您只需指定一个WHERE
子句,就可以获得您正在寻找的行。在后台,很多相同类型的工作(可能)正在进行,但所有工作都由代码完成,您不必编写或维护。