合并地址还是不合并地址?

2024-09-29 23:15:29 发布

您现在位置:Python中文网/ 问答频道 /正文

正在处理sqlalchemy python flask postgresql项目,但不确定是否应该将表合并在一起。我在早期的开发阶段首先从公司地址开始,现在我有了另一个地址表

我应该将它们分开还是合并到一个全局地址表中

UserAddress
CompanyAddress

如果我将它们合并到一个地址表中,它将类似于以下内容。。。但是从长远来看,我的用户id仍然比公司id多,而且大部分都是空白的

Address
-user_id
-company_id

公司和用户可以有多个地址。。。所以这就是为什么我考虑使用这种方法,但从长远来看。另外,我也不确定这是否是一个好主意,为维护这一点。或者我应该让它们保持原样并单独维护它们

谢谢!如果可能,分享你处理类似情况的经验


Tags: 项目用户idflasksqlalchemyaddresspostgresql地址
1条回答
网友
1楼 · 发布于 2024-09-29 23:15:29

回答你的问题相当困难,有几点需要注意:

  1. 如果UserAddressCompanyAddress具有完全相同的字段,并且它们可以在用户和公司之间互换,并且您不希望像所有UserAddress或所有CompanyAddress那样进行查询,那么我的建议是将它们合并到同一地址表中,因为它们在数据库模型中代表相同的实体

  2. 如果有一些user addresses作为company address没有意义,或者如果您要为company address添加不在user address中的company address值,我建议您将这些表分开,因为它们不代表相同的实体(用户地址与公司地址不同)

  3. 如果您要执行诸如“所有地址”之类的操作,或者在所有地址内搜索文本,我认为使用继承是有意义的。您可以通过将公共字段保存到一个地址表中,将特定字段保存在单独的用户/公司地址表中,并将外键保留在主地址表中,然后分别在用户/公司表中引用用户/公司地址表来实现这一点

您的安全选择是将表分开,如果有意义,您可以在以后合并它们,但是如果您真的有信心并且表(并且您认为它们会)完全相同,并且您不会查询用户或公司地址(这将需要大量联接),只需将它们合并到一个表中即可

希望有帮助

相关问题 更多 >

    热门问题