首页 > 解决方案 > 将每个模块的基本信息保存在数据库中

问题描述

我正在为研究生设计自己的应用程序,但我面临数据库级别的问题。如果可以的话,我想征求意见/建议。

在我的系统中,系统中的每条记录都需要保留一些基本信息,例如:
-创建者
-当前所有者
-创建时间
-状态记录(是否移动到垃圾箱)

例如,我需要上面相同的基本数据:
* 用户
* 文件(将在用户之间共享)
* 通知(用于用户)
* 员工(因为不是每个员工都是用户,但每个员工都保留创建时间等数据)

所以我认为一个好主意是将所有这些数据保存在一个表中并将其引用到其他模块表。

这就是我的问题的核心。我如何设计和实现这种连接。我尝试在架构中查找表(我正在使用 MariaDB )并将它们列出在一个表中,但它不会说服我。

也许您听说过或阅读过一些针对此类问题的解决方案。

非常感谢!!

标签: mysqldatabasedatabase-designmariadb

解决方案


Users并且Files是一对多,对吗?然后你“必须”使用两个不同的表。(ETC。)

created/owner/time/status 在每个表中的事实并不违反数据库设计原则。

一个想法是将这些列放在另一个表中。但是它们本质上是相互独立的,所以这没有意义。

回到表格的一般概念。思考您拥有哪些“实体”(用户、文件、通知、员工)。然后想想它们是如何以这种方式关联的:

  • 1:1 -- 将信息放在一个表中
  • 1:many -- 两张表;“多”表具有id“一”。
  • many:many -- 3 个表;额外的一个是另外两个之间的映射;它有一个id彼此的表,通常没有其他列。

之后,您可以开始填充表——id、name、created_time、status 等。


推荐阅读