对数据库编程的基本理解[关闭]
Posted
技术标签:
【中文标题】对数据库编程的基本理解[关闭]【英文标题】:Fundamental understanding of programming with database [closed] 【发布时间】:2014-08-22 03:21:13 【问题描述】:作为一名新手程序员,我编写的大多数程序从未保存或加载过它们的任何数据,少数通过序列化类并将其保存为原始文本文件或二进制形式来保存。
我现在正在使用 Django 学习 Python,但我根本不了解幕后的工作原理。在我编写的所有程序中,我知道如果我有一个类 A
并且该类拥有一个链表数据成员 list
那么该列表存在于内存(堆/堆栈)中。
现在假设我编写了一个非常大的 Django 应用程序,并且我有 10,000 个 A
实例,它们究竟保存在哪里?我该如何控制它们?我想持有一个包含 10,000 个实例的列表是不合理的,但是我如何管理正在加载到应用程序内存中的内容,以及通过数据库直接访问的内容?
我希望我很清楚,作为一个新手,我不知道正确的定义来描述我的意思并且难以沟通,所以请随时编辑和纠正我。
【问题讨论】:
我认为回答这个问题可能会导致写一本书。我建议您从不使用框架开始(即编写一个简单的 Python 程序)并阅读有关数据库和数据结构的知识 刚开始使用 django 教程。我认为这将为您解决很多问题。 @Alvaro 参考一本书可能是一个完美的答案,我不是在找人教我一切。 @OdifYltsaeb 我做了polls
教程,它并没有帮助我理解这些要点。
Django 与任何其他 Python 程序没有什么不同。如果列表中有 10000 个 A
类实例,它们就在内存中。如果 A
是 ORM Model
类,那么您可以将这些实例保存到数据库中。如果您的数据库中有 10000 行,则它们在您加载它们之前不存在于内存中,方法是开始迭代 Django 查询集。
【参考方案1】:
我将转移您所要求的建议阅读有关数据存储、数据结构、表等的内容在使用 ORM(例如 django 提供的 ORM)之前。
如果我理解正确,您的意思不是内存管理,而是数据的持久性。数据如何存储在当今的商业应用程序中?主要在数据库中。
你可以找到数百个关于这个问题的教程,基于 Django 支持的关系数据库建模系统,我将从学习关系数据库开始。
我发现this article 非常“直截了当”
如果您不了解这些概念,请随时提出任何问题。一旦你掌握了数据库的工作原理,你就会明白 Django 做了什么以及你的模型是如何随着时间的推移而持续存在的。
【讨论】:
我是一名计算机科学专业的学生,所以我有一些数据结构的知识。我只是不明白我的数据结构和数据库关系是如何发生的。 好的,关于 ORM 如何工作的一些解释?如果需要,请给我发电子邮件:alvarotuso@hotmail.com【参考方案2】:您的问题似乎是针对内存管理的,例如访问保存对象的实际内存空间。通常这是可以避免的,因为 python 应该为您处理这一切,作为程序员,您需要操作存储对象的实际内存空间并不重要。见Accessing object memory address
Django支持使用SQLite、mysql、PostgreSQL等多种数据库;所有这些都有不同的后端操作。
如果您还没有这样做,那么可能值得您花时间探索有关数据库的 Django 文档:https://docs.djangoproject.com/en/dev/ref/databases/
【讨论】:
以上是关于对数据库编程的基本理解[关闭]的主要内容,如果未能解决你的问题,请参考以下文章