分层MySQL资产跟踪的最佳实践

时间:2009-05-17 21:13:07

标签: mysql database database-design

我正在编写一个在线项目资产跟踪器,但我是MySQL的新手。对于像这样的事情,跟踪项目,用户和资产的最佳方法是什么?我有3个资产,用户和项目表。用户应拥有项目和资产。资产可以是多个项目的成员,项目应该能够被多个用户看到。

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

没有解析的另一个解决方案是为链接信息提供单独的表,因此例如会有一个资产表,其中包含资产ID,项目ID和用户ID,以及它是否被分配给另一个项目或者用户,该表中会有另一个条目。但是,此解决方案将具有包含多个条目的资产。

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

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

1 个答案:

答案 0 :(得分:2)

引用:

  

每个都有一个中等文本字段   每个资产都带有id的项目   它与

相关联

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

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

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

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