2

现在,我有一个二维网格,它显示了特定 (2) 服务的 (1) 要求。它在前端看起来像这样:

                FEATURE          TRAILER           MARKETING
DVD               x                
Streaming         x                x
Theatrical        x                                   x

我现在将它存储在数据库中的方式是:

`service`
  - id
  - name (e.g., "DVD")

` requirements`
  - id
  - name (e.g., "Marketing")

`requirements_grid`
  - service_id
  - requirement_ids (csv of all requirement ids)

现在我可以说类似“对于 DVD,我需要一个功能作为要求”这样的描述。

我现在需要添加两个附加参数,(3)内容类型;(4) 提供者。这些将是默认需求网格中的更改(添加或删除)。

这将允许我描述类似“对于 Fox(提供商)的电视(内容类型)DVD,我需要一个功能和一个预告片。

我将如何构建数据库来存储它?而且,在前端显示它的可能方法是什么?

4

3 回答 3

3

要回答您的第一个问题 - 如何存储四维网格 - 只需按照您已经确定的方向继续,但对requirement_ids列进行规范化。

所以在当前模式中,如果你有

| service_id | requirement_ids |
|          1 |           1,2,3 |
|          2 |               2 |

在新架构中,您将获得:

| service_id | requirement_id |
|          1 |              1 |
|          1 |              2 |
|          1 |              3 |
|          2 |              2 |

在此更改之后,添加新维度非常容易:

`service`
  - id
  - name (e.g., "DVD")

` requirements`
  - id
  - name (e.g., "Marketing")

`content_type`
  - id
  - name

`provider`
  - id
  - name

`requirements_grid`
  - service_id
  - requirement_id
  - content_type_id
  - provider_id

另一个问题我帮不了你。考虑将其移至单独的 Stackoverflow 问题。

于 2013-06-19T19:01:43.253 回答
0
CREATE TABLE requirement
(service_id INT NOT NULL
requirement_id INT NOT NULL
content_type --type??
provider --type??,
PRIMARY KEY ? (service_id,requirement_id,content_type,provider type));
于 2013-06-19T19:47:19.233 回答
0

这是我根据反馈选择使用的架构:

`requirements_grid`
  - service_id NOT NULL
  - requirement_ids (csv of all requirement ids) NOT NULL
  - content_type
  - provider

保留 csv 字段只是让我更容易访问它。

于 2013-06-21T00:13:01.430 回答