我需要将三个项目作为一个数组存储在单列中,并能够快速/轻松地在以后的功能中修改该数据。

---如果您信任我,可以跳过此部分 -

需要明确的是,我一直都喜欢并使用X_REF表,但是X_REF在这里不起作用,因为这不是一对一的关系。我正在制作一个项目管理工具,除其他外,还将用户分配到一个项目,并每周每周分配数小时,有时在未来数周内持续数周。当然有很多项目,一个项目可以有很多团队成员,团队成员可以一次参与许多项目,但不是一对多项目,因为团队成员可以在同一项目上工作数周,但不同的几个星期不同。换句话说,每个对象确实是唯一的。此外,/最后,可以随时通过任何团队成员更改此数据 - 因此需要轻松操纵。

基本上,我需要处理三个值(团队成员,我们正在谈论的一周以及多少小时)在项目表中的一个项目行(项目团队成员的列下方)中落入一个项目行,并将其视为一个项目 - 团队成员 - 实际上将成为该项目参与的所有团队成员的较大阵列的一部分。

- end skip,在这里开始阅读:) -

因此,假设应用程序的一般架构和关系表不是总废话,并且在这种情况下,我们实际上是在墙壁上使用数组/对象作为此列的值,那么是否有最佳实践?像特定的SQL数据类型?特定对象/数组格式? CSV? json? xml?大多数应用程序都在C#中,但是(由于我不解释的非常奇怪的原因),如果有一个特定的环境可以很好地处理此环境,我们可以真正使用任何环境。

目前,我正在思考(WebService + JS/JSON)或PHP Unerialialize/serialialize(但是我被PHP解决方案勾勒出来,因为使用AJAX时似乎有点麻烦吗?)

有帮助吗?

解决方案

嗯,听起来您应该重新考虑您的模式,如果我理解您,为什么不创建这样的模式:

Users
  ...
Projects
  ...

WorkItemTracking 
  UserId
  ProjectId
  Week // between 1 and 52, or a datestamp
  Hours // number of hours budgeted for this task this week

要查找用户在接下来的3周内所做的事情,

SELECT * form workItemTracking where userId = <id> and week between <weekstart> and <weekend>

这将使您能够将多个用户分配到多个项目,并将项目分配给多个用户。这也使更新变得容易。这有意义吗?

其他提示

您能否将数组将数组弄平到文本列,并使用一些特殊的令牌将每个数据分开,例如字符串 Joe/03/25 将是一个数组 someArray={'Joe','03','25'}. 。那会起作用吗?

我承认这种方法可能会有问题。例如,如果您想搜索此列以寻找“ Joe”,则必须使用 ...LIKE 'Joe%'. 。似乎不是很容易索引,因此您的查询会有点慢。

一些数据库(例如Oracle)实际上允许数组类型作为列类型(我认为这些有时也称为嵌套表),而我 思考 (虽然可能是错误的)您可以在列中搜索和索引数组的元素。您没有指定正在使用哪个数据库供应商,因此您可能可以将其作为一个 恰当的 阵列,取决于您选择的技术。

为了其他人想知道...

“该死的拜伦你得到了我;我讨厌在互联网上看起来很愚蠢。但是你是对的 - 这确实是更好的解决方案。谢谢!”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top