如何将两个表合并为一个数据库模式

时间:2020-04-24 04:57:17

标签: sql database database-design relational-database

我是数据库逻辑的新手。我有一个用于出租系统的OwnersBorrowers表。他们两个都共享类似的字段,例如“电子邮件,用户名,密码等”。而且它们彼此不同。
我的问题是:我如何将这些相似的字段合并到一个表中,因为我非常确定自己的实现是错误的。另一个问题是我无法正确确定ItemsItem_statuses enter image description here

之间的关系

1 个答案:

答案 0 :(得分:1)

设计表时,您不是根据列标题之间的相似性来组织表,而是根据它们之间的关系来组织表。

您的设计正在运行,您可以删除“ item_statuses”表并在“ items”表中创建“ status”列。

但是,让我们集思广益,以改进设计并考虑更多的业务逻辑。我们应该问一些问题,例如:

  • 所有者成为借款人的频率如何?
  • 我应该跟踪该物品的所有状态吗?

如果一个人经常成为借款人和所有者,我们将在数据库中以重复的记录结尾,因此,我们将仅使用所需字段制作一个称为“用户”的表,并在其中引用外键用户的“项目”表。

如果您应该跟踪项目的所有状态,请创建一个单独的表,称为“ items_log”,其中包含“日期”等字段,并使用引用项目表中该项目的外键。

我还将跟踪该项目的所有借用者,因此,我可以创建一个“ item_borrowers”表,其中“ borrower”引用用户,而“ item”则使用诸如“ Date”之类的字段引用该项目'。

还请记住,您应将哈希密码存储在数据库中,而不是纯文本。