单表或多数据库表

Posted

技术标签:

【中文标题】单表或多数据库表【英文标题】:Single table or multiple database tables 【发布时间】:2015-03-11 04:54:15 【问题描述】:

我正在开发一个网络应用程序,我目前有三个模型“用户”、“个人资料”、“公司档案”。 Profile 模型为拥有个人帐户和公司帐户的 CorporateProfile 的用户提供服务。 桌子; profile 和corporate_profiles 具有相似的字段;街道,city_id,电话,state_id。 我试图弄清楚使用单个配置文件表来处理两个用户类型帐户是否会更好。

数据库架构

用户表

身份证 电子邮件 密码 名字 姓氏 姓名

个人资料表

id

user_id

照片

dob

state_id

city_id

街道

school_id

公司概况表

id

user_id

标志

industry_id

state_id

city_id

街道

说明

【问题讨论】:

你能指定所有3个表的结构吗!! 看看this answer 【参考方案1】:

这取决于你的主要目的是什么。 如果您的数据库中有很多选择,最好将这些值保留在表中。 否则,让一个新实体(ProfileInformation 或类似的东西)在一个表中具有共享值可能更有价值

【讨论】:

看起来你保存了地址信息,然后你可以做一个地址实体并为那个表做一个外键,地址信息没有太大变化所以你不必担心额外的列你想随着时间的推移添加

以上是关于单表或多数据库表的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 数据库设计 - 存储图像 - 单表或多表

DynamoDb 表设计:单表或多表

MySQL 性能:单表或多表

单表多表操作

数据库之表查询,单表多表,子查询

Django模型层:单表多表操作F与Q查询