在创建数据库结构的过程中,我多次遇到问题,更有效的方法是,将数据以pickle格式存储在同一个表的列中,或创建其他表然后使用JOIN。 应遵循哪条路径,任何建议?
例如: 有一个Customers表,包含Name,Address
等字段现在,为了管理订单(每个客户可以有很多订单),您可以创建订单表,也可以将序列化格式的订单存储在Customers表的单独列中。
答案 0 :(得分:4)
创建单独的表通常 更好。如果你选择酸洗,后来发现你想以不同的方式查询数据,那可能很困难。
答案 1 :(得分:3)
通常最好保持数据规范化(即创建更多表格)。当您不需要对它们执行关系操作时,如您所说,存储数据'pickled'是可以接受的。
答案 2 :(得分:2)
混合SQL数据库和酸洗似乎要求麻烦。我要么坚持使用SQL数据库中的所有数据,要么只使用ZODB形式的酸洗,这是一个非常棒的Python OO数据库。
混音有时会产生影响,但通常比它的价值更麻烦。
答案 3 :(得分:1)
我同意Mchi,如果您不需要搜索或执行关系类型的操作,存储“pickle”数据没有问题。
非正规化也是一个重要的工具,可以在正确应用时扩展数据库性能。
使用JSON代替泡菜可能是个更好的主意。它只使用更多的空间,并且可以使用Python以外的语言数据库
答案 4 :(得分:0)
我同意@Lennart Regebro。您可能应该看到是否需要Relational DB或OODB。如果您选择RDBMS,我建议您坚持使用更多表格。恕我直言,酸洗可能存在可扩展性问题。如果这就是你想要的,你应该看看ZODB。它非常好,支持缓存等以获得更好的性能