Python 合并地址还是不合并地址?
正在处理sqlalchemy python flask postgresql项目,但不确定是否应该将表合并在一起。我在早期的开发阶段首先从公司地址开始,现在我有了另一个地址表 我应该将它们分开还是合并到一个全局地址表中Python 合并地址还是不合并地址?,python,database,postgresql,merge,Python,Database,Postgresql,Merge,正在处理sqlalchemy python flask postgresql项目,但不确定是否应该将表合并在一起。我在早期的开发阶段首先从公司地址开始,现在我有了另一个地址表 我应该将它们分开还是合并到一个全局地址表中 UserAddress CompanyAddress 如果我将它们合并到一个地址表中,它将类似于以下内容。。。但是从长远来看,我的用户id仍然比公司id多,而且大部分都是空白的 Address -user_id -company_id 公司和用户可以有多个地址。。。所以这就是
UserAddress
CompanyAddress
如果我将它们合并到一个地址表中,它将类似于以下内容。。。但是从长远来看,我的用户id仍然比公司id多,而且大部分都是空白的
Address
-user_id
-company_id
公司和用户可以有多个地址。。。所以这就是为什么我考虑使用这种方法,但从长远来看。另外,我也不确定这是否是一个好主意,为维护这一点。或者我应该让它们保持原样并单独维护它们
谢谢!如果可能的话,分享你处理类似情况的经验?回答你的问题相当困难,有几点需要注意:
UserAddress
和CompanyAddress
具有完全相同的字段,并且它们可以在用户和公司之间互换,并且您不希望像所有UserAddress或所有CompanyAddress那样进行查询,我的建议是将它们合并到同一地址表中,因为它们在数据库模型中代表相同的实体用户地址
作为公司地址
没有意义,或者如果您要为公司地址
添加用户地址
中不存在的值,我建议您将这些表分开,因为它们不代表同一实体(用户地址与公司地址不同)希望它能有所帮助,用户地址和公司地址可能无法互换。我将按照以下方式查询用户和公司查询的
select*from address where User\u id=x
。所以SQLALCHEMY应该类似于address.filter(address.User\u id!=None))。all()
表格列很相似,只是用户id和公司id都必须填写。我担心的是company_id列大部分是空白的,并且是持续的可维护性。因此,我的建议是不要加入这些表。另一个问题:您是否需要查询“所有地址”?在这种情况下,我应该使用继承,将公共字段保存到一个表中,将不同的字段保存在单独的用户/公司地址表中,并将外键保留到主地址表中。要将公共字段保存到一个表中,而将其他表中的不同字段保留在一起吗?它们中的大多数是相似的。唯一真正唯一的列是用户id和公司id。我通常不会查询所有地址。。它通常针对UsRyID或PosiySyID。对于公共字段,我有一个用于地址的抽象模型类。是的,我认为将公共字段保存到一个表中的解决方案是在分割和连接表中间的某个地方…我给你的建议是不要加入表格,因为它们的意思不一样。。。