【问题标题】:Best practice for hierarchical MySQL asset tracking分层 MySQL 资产跟踪的最佳实践
【发布时间】:2009-05-17 21:13:06
【问题描述】:

我正在编写一个在线项目资产跟踪器,但我是 MySQL 新手。跟踪此类项目、用户和资产的最佳方式是什么?我有 3 个用于资产、用户和项目的表。用户应该拥有项目和资产。资产可以是多个项目的成员,并且项目应该能够被多个用户看到。

我想到的第一种方法是在每个项目上都有一个 mediumtext 字段,其中包含它链接到的每个资产的 id。每个资产也将有一个 mediumtext 将具有它链接到的每个项目 id。但这是一个问题,因为我无法真正进行搜索,而无需解析文本以找出它所附加的项目/资产。

另一种无需解析的解决方案是为链接信息设置单独的表,例如,将有一个资产表,其中包含资产 ID、项目 ID 和用户 ID,如果它被分配给另一个项目或用户,该表中将有另一个条目。但是,此解决方案将包含具有多个条目的资产。

另一种方法是让网站在创建项目时创建一个表,该表将存储资产和用户信息。由于可能有数千个项目,这将很快挤满数据库,据我所知,在 MySQL 上创建表比条目更重。

我倾向于第二种解决方案。有谁知道更好的方法吗?

【问题讨论】:

  • 您的问题标题涉及分层数据(这是一个非常复杂的主题),但我没有在任何地方看到您的问题正文中提到的内容......

标签: mysql database database-design


【解决方案1】:

引用:

每个都有一个 mediumtext 字段 具有每个资产 id 的项目 它链接到

这是最糟糕的设计......也许永远!阅读database relations。紧急处理crash course。看一些example databases; MS Access 有一些相当不错的模板,您可以检查一下。

你所描述的看起来可以用这些关系建模:

  project --- inf:inf --- users
  asset   --- 1:1     --- users
  asset   --- inf:inf --- projects

多对多关系将放在单独的表中。

【讨论】:

  • 感谢您的链接。这正是我正在寻找的信息。
猜你喜欢
  • 2011-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-01
  • 2010-09-17
  • 1970-01-01
  • 2013-11-18
  • 1970-01-01
相关资源
最近更新 更多