4

私の質問を説明する前に、この種の質問が以前にSOで尋ねられたことを知っていると言いたいのですが、私の質問はまったく異なるスケールであり、状況は私が他の人で読んだものとは根本的に異なるようです.人々の質問。

バックグラウンド:

2505 個のテーブルを含むデータベースを持っているクライアントのためにいくつかの作業を行っています。これらの 2505 のテーブルは、数百の WordPress インスタンスのテーブルで構成されているため、これらのテーブルは互いにやり取りする必要はありません。2505 個のテーブルを持つ 1 つのデータベースではなく、それぞれ 10 個のテーブルを持つ 250 個のデータベースにすることも簡単にできます。

さらに、この特定のアプリは現在、米国の 1 つの州でのみ使用されており、目標は 50 州すべてで使用されることです。つまり、最終的には合計で 2500 * 50 = 125,000 のテーブルが存在することになります。控えめに言っても、これは次善の設計の兆候だと思います。

問題は、クライアントの開発者がデータベースについてほとんど理解していないことです (たとえば、正規化、外部キー、または一意の制約について知らない) ため、データベース内の 2505 個のテーブルが適切なデータベース設計ではない理由を説明するのは非常に困難です。

データベースについてよく知らない人に、1 つのデータベースに 2505 個のテーブルを配置するのは良くないということをどのように説明しますか? (具体的で、事実に基づいた、反駁できない理由を探しています。)

(ちなみに、問題の根本はプラットフォームの選択にあると思います。WordPress はおそらくこの仕事に適したツールではありませんが、最初にデータベースの問題に取り組みたいと思います。)

4

5 に答える 5

2

その人がデータベースを理解していない場合、特定の技術的議論を使用してもおそらくあまり役​​に立ちません。普通の人が理解できる (ふりをする) ことを、できれば上司の前で (または上司に Cc: を付けて電子メールを送る) ことを使用することをお勧めします。

上司はおそらく、1 つのデータベースに多くのテーブルを保持することは安全ではない、または単に業界標準ではないと言ったことに反応するでしょう。結果として得られるデータベースは遅くなり、クラッシュする可能性があり、顧客を怒らせる可能性があります。

この種のコミュニケーションは操作的ですが、率直な技術的な話はおそらく何の役にも立たないでしょう。開発者が何も理解せず、それでもあなたに反対することを主張する場合、デザインの良し悪しについて話すことは役に立たない (役に立たないよりも悪いかもしれません。初心者は、悪いデザインを使用することを誇りに思うことがあります。想定リートスキルズ)。あなたは上司を説得するつもりです。そのため、上司が理解できる言語を話さなければなりません。上司は、プロジェクトが失敗するリスクを回避したいと考えており、非標準の手法を使用するとリスクが増大することにおそらく同意するでしょう。正確な技術的証明はおそらく必要なく、あなたが言っていることがよりうまく機能することを強く確信していることを表明します (これは一般的に悲しいことですが、この特定のケースではうまくいきます)。

于 2012-08-16T15:54:17.597 に答える
0

お金。

開発者はお金がかかります。メンテナンスにはお金がかかります。

黒板で会議を開くか、次のようなものを記載した電子メールを送信します。

開発者の費用は1日あたり500ポンド

アプリケーションの背後にあるテーブルの作成
-----------------------------------

1つのテーブルを作成する時間=20分
125,000テーブルを作成する時間=125,000x 20=2,500,000分
125,000テーブルを作成するためのコスト=2,500,000/ 60/8 *500=£2,604,166


アプリケーションの更新
-----------------------------------

1つのテーブルを更新する時間=5分
125,000テーブルを更新する時間=125,000* 5=625,000分
125,000テーブルの更新コスト=625,000/ 60/8 *500=£651,041

1か月目の費用
-----------------------------------
£654,041+£2,604,166=£3.258m

現地通貨に換算して、「上司」が何かを変更したいときはいつでも、これだけのメンテナンス費用を節約できることを指摘します。これを何もせずにやるのに行き詰まらないようにするために、これは通常の手順に加えて余分なものであることを指摘してください。

于 2012-08-16T18:35:22.700 に答える
0

非技術者になぜそのようなデータベースが悪いのかを説明しようとしている場合、私たちの多くがするように詳細に説明することはできません.

さて、それは本当かもしれませんが(そうでないかもしれません)、いくつかの簡単な答えを使うことができます:

a) 「より多くのテーブルがある場合、日付を取得するためのコマンド (クエリ) は複雑になりすぎたり、大きくなったりします。つまり、システムの応答性や速度が低下します。」

また

b) 「何か問題が発生したり、データベースを変更する必要がある場合、データベースは最適化されていないため、より多くの費用を支払う必要があり、誰がお金を払っても苦労することになります。」

それはとにかくそれを説明する方法です。

幸運を!

于 2012-08-16T16:10:47.343 に答える
0

データベースはキャビネットのようなもので、各テーブルが引き出しになっていると彼に伝えてみませんか.

今度は、2505 個または 125,000 個の引き出しがあるキャビネットの中を見ているところを彼に想像してもらいます...さらに難しくするために、彼には一番上の引き出しに到達するためのはしごやその他の手段がありません。

于 2012-08-16T15:59:57.993 に答える