Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SQLAlchemy/MySQL的表设计_Python_Mysql_Sqlalchemy - Fatal编程技术网

Python SQLAlchemy/MySQL的表设计

Python SQLAlchemy/MySQL的表设计,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,我在MySQL中创建了一个数据库,其中包含以下表格 Attachment Sender Recipient Message mr_link ms_link ma_link 发件人和收件人是不同的电子邮件地址表 mr_链接包含邮件及其关联收件人的ID(每条邮件每个收件人一个条目) ms_link具有消息及其关联发件人的ID ma_link具有消息及其关联文件的ID 我最近发现了SQLAlchemy,并喜欢它如何使我的查询等更高效 我现在要做的是将这个现有模式转换为具有关系的表,但是我的MySQL

我在MySQL中创建了一个数据库,其中包含以下表格

Attachment
Sender
Recipient
Message
mr_link
ms_link
ma_link
发件人和收件人是不同的电子邮件地址表 mr_链接包含邮件及其关联收件人的ID(每条邮件每个收件人一个条目)

ms_link具有消息及其关联发件人的ID

ma_link具有消息及其关联文件的ID

我最近发现了SQLAlchemy,并喜欢它如何使我的查询等更高效

我现在要做的是将这个现有模式转换为具有关系的表,但是我的MySQL fu和SQLAlchemy fu仍处于早期阶段

我是来这里寻求指导的

谢谢,
Larry

在SA中实现模型时,您有一个主要的选择,即使用ORM和直接使用SQL构造。这在一开始可能会让人困惑,因为它们有相似的方法和行为。在开始深入研究时,从您所使用的类的角度考虑它们可能是有用的:

  • 使用SQLI/f,您将主要处理表
  • 使用ORM,您将主要处理类(消息、收件人、发件人等)
在任何一种情况下,您都可能会发现自己首先实现了主要实体,然后继续建立它们之间的多对多关系。SA做了一些伟大的事情,但它是相当深刻的。我建议给自己一些时间来完成这些工作


为此,我建议你花些时间在家里。中的BlogPost/关键字示例与您的用例有一些共同的有用特性,应该给您一个开始的地方。

我不确定有多少人能够真正“回答”这个问题。“如何将我的MySQL表映射到SQLAlchemy”实际上是一个阅读的问题。关于SQLAlchemy中的映射项,您有什么特别的问题吗?如果你甚至不知道从哪里开始,你应该浏览一遍,确保你了解发生了什么。然后,将这些知识扩展到您自己的项目中;我发现自己经常使用这两种方法!特别是,我倾向于在处理核心应用程序功能时使用orm;业务规则等;但是,当处理整个数据时,核心sql表达式接口是:报告、数据迁移或批处理更改。@TokenMacGuy-完全同意您的看法。实际上,我试图指出,您使用SA的方式基本相同,但区别主要在于您操作的类(您的问题域与SQL关系域)不同。