我是网络开发和数据库的新手(我目前正在使用Django和PostgreSQL),我对数据库有一个普遍的问题,因为除了他们存储数据的事实,我几乎一无所知。
我想知道在我的模型中尽可能少的字段
是否是一种好习惯?例如,我的Model
有一个DateTimeField()
,并且正在考虑创建一个与 月相对应的CharField()
该实例与之相关(我不会深入研究细节)。考虑添加这个month
字段引发了我提出这个问题。
我显然不需要 month
字段,因为我可以将其从DateTimeField()
解析出来,但它只是方便有一个包含月份名称的字符串而不是解析它。是否可以为方便添加另一个字段,或者我应该尽可能少的字段?
答案 0 :(得分:1)
对于很多字段来说真的不是很愉快,但是如果字段是这样的月份,则可以使用计算字段。我不知道Django中是否存在这种情况。如果没有,只需使用视图来显示该月份。更新时会遇到麻烦,忘记更新其中一个包含相同信息的字段。
答案 1 :(得分:0)
我的经验:如果数据库存储在快速硬盘上,那么就是更多的字段,因为你节省了编写代码的时间和机器的cpu资源,这是数据库的客户端;而不是数据库是旧的或不快的机器,更好的是客户端完成工作。 如果客户端和服务器的连接速度很慢,则相同。
答案 2 :(得分:0)
您要做的是Database Denormalization。通过这样做,您可以优化表的读取性能,但您还必须承担任何冗余副本保持一致的责任。
那么你真的有这样的性能缺点吗? (我加倍但是......)如果你真的有,在添加冗余列之前你可以做的就是尝试添加列indexes。