-2

PHP、OOP、PDO の知識を向上させるための個人的なプロジェクトとして、Atlassian Jira、fogbugz などのバグ報告データベースを設計します。

私はデータベース構造の基本的な理解を持っていますが、単一のデータベースでしか作業したことがありません。

この単純化されたシナリオでは、次のテーブルがあるとします。

  1. ユーザー
  2. バグ
  3. 事業
  4. 問題の種類
  5. 優先順位

私が最初に考えたのは、企業ごとに新しいデータベースが必要だということでした。なぜなら、バグ データベースと全員のバグを混在させると、クエリ速度の戻りに影響を与えるからです。これは新しい概念であるため、より良い方法があるかどうかを知りたいだけです。

db_company_56where 56is the id of the company のような名前のデータベースの下に、上記の 5 つのテーブルのデフォルトのフィールドが入力された新しいデータベースを自動生成すると仮定します。

非常に多くのデータベースで物事を維持するのが少し面倒になる可能性があります.phpadminのサブフォルダーの下にそれらを保存する方法があるのだろうか. それで、私が合理的に取っているルートは大丈夫ですか、それともこのようなことをするためのより良い方法はありますか?

あなたがさらに読み物を持っているなら、私は自分自身で検索することができます.

4

1 に答える 1

1

データベースをセットアップする場合、どのような状況にもアプローチする方法がいくつかありますが、私があなたの立場にあるとしたら、どのようにセットアップするかを以下に示します。コメントで述べたように、あなたは本来あるべきよりも高いレベルを考えています.セキュリティが大きな問題であり、同じデータベースに異なる会社の記録を保存したくない場合を除き、複数のデータベースは必要ありません.すべての情報について。

企業には複数のプロジェクトがあると思います。

コメントで str が言及されているように、複数のテーブルが必要です。ユーザーとそれぞれのデータ用に 1 つのテーブルを作成し、バグ用に 1 つのテーブルを作成します。このテーブルには、会社、プロジェクト、問題の種類、優先度、必要なその他の情報 (報告ユーザーなど) の列と、もう 1 つの列 (ID) が含まれます。会社、またはより可能性の高いプロジェクトに関連する数。これを AUTO_INCREMENT 列にすることはできませんが、管理することはできます (すぐに説明します)。

複数の WHERE 条件を使用して、会社内の 1 つのプロジェクトのバグを表示できます。次に例を示します。

SELECT * FROM 'bugtable' WHERE company = 'company_name' AND project = 'project_name' ORDER BY bugid ASC

これにより、指定された会社の指定されたプロジェクトからのすべての結果が表示されます。新しいバグ レコードを追加する場合、新しい ID 番号を簡単に割り当てることができます。最大の ID を見つけるクエリに変数を割り当てます。たとえば、次のようになります。

SELECT 'bugid' FROM 'bugtable' WHERE company = 'company_name' AND project = 'project_name' ORDER BY bugid DESC

次に、ID を 1 増やし、それを使用して新しいバグ レコードを送信します。つまり、バグ レポートを保存するために必要なのは 1 つのテーブルだけです。これが少し役立つことを願っています!

于 2013-08-04T17:54:44.813 に答える