1

製品コード、会社名、請求書番号が記載された14のテーブル(毎年1つ)があります。テーブルの主な構造は同じですが(製品コード、ID)、会社の名前にいくつかの変数が存在する可能性があります。

Table2011
| ID | productcode | firm1 | firm2 | firm3 | etc |
| 1  | G-00001     | 2;5;40| 32;67 |       | 150 |
| 2  | G-00005     |       | 50    |       |     |
|etc |             |       |       |       |     |

Table2010
| ID | productcode | firm1 | firm2 | firm3 |etc |
| 1  | G-00001     | 1;10  |       |  55   |    |
| 2  | G-00003     |       | 2     |       |    |
| 3  | G-00005     |       | 50    |  40   |    |
| etc|             |       |       |       |    |

Table2009
...

列Firm1は通常、他の表の会社1と同じ会社と同じではありません。

テーブルエディタを使用してテーブルを操作しています(テーブルへの列の追加、値の編集など)。

以下のような結果が得られるかどうか知りたいです。それは私のPHPスキルを上回っています。

製品G-00001ページ

…
<UL>
<LI>Year 2011: 150etc; 67firm2; 40firm1; 32firm2; 5firm1; 2firm1</LI>
<LI>Year 2010: 55firm3; 10firm1; 1firm1</LI>
<LI>Year 2009: ...</LI>
...
</UL>
…
4

2 に答える 2

4

Lemme は本の推奨事項から始めます: SQL Antipatterns。あなたがこの混乱を引き起こしたのか、それを修正するために割り当てられたのかは関係ありません。

もし私があなたの立場だったら、まずデータベース構造を修正するでしょう。これは狂気です。年ごとに新しい表を作成したり、会社ごとに新しい列を作成したりする必要はありません。データベースは Excel スプレッドシートの形式ではありません。

Invoices             Years          Companies
 -----------------      -------------     ---------------
| product_code PK |    | year_id  PK |   | company_id PK |
| company_id   FK |    | number      |   | title         |
| amount          |     -------------     ---------------
| year_id      FK |
 -----------------

ここで、PK - 主キーと FK - 外部キーです。

この構造により、情報の収集がはるかに簡単になります。

于 2011-05-06T12:50:24.490 に答える
0

データを表示したいだけで、まだ再構築について心配していない場合は、 を使用しJOINてすべてのテーブルからの情報を表示できます。

私はtereskoに同意しますが、そのデータベースを再設計する必要があります. このままでは維持できません。

于 2011-05-06T12:53:46.933 に答える