ホームページ  >  記事  >  バックエンド開発  >  データテーブルの名前が変更されました (定期的に同じプレフィックスが追加されます)。システムは SQL ステートメントを変更する必要がありますか?

データテーブルの名前が変更されました (定期的に同じプレフィックスが追加されます)。システムは SQL ステートメントを変更する必要がありますか?

WBOY
WBOYオリジナル
2016-06-23 14:11:37885ブラウズ

元のシステムの SQL 形式は次のとおりです:
select * from 'table';
今日オンラインになった後、次のことがわかりました:
他の理由によるものです (ここには記載されていません)。
すべてのデータ テーブルの名前を変更し、すべてのデータ テーブルに「nbx_table」というプレフィックスを付ける必要があります

どうすればよいですか?
まず、もう一度システムを変更しますか?大変じゃないですか?
第二に、次回このようなことが起こらないようにするにはどうすればよいでしょうか?

第三に、次のような cms を作成する利点は何ですか:

$this->FLInfos = $this->dsql->GetOne("SELECT * FROM `#@__freelist` WHERE aid='$fid' ");


ディスカッションへの返信 (解決策)

一部のオープンソース プロジェクト (CMS、BLOG、Wiki、フレームワークなど) はデータにプレフィックスを追加しますテーブル 理由は次のとおりです:
他のアプリケーション システムとの競合を防止します。
レンタルスペースに自分でデータベースを作成することはできません。スペースに複数のプロジェクトが配置されている場合、テーブル名が競合する可能性が非常に高くなります。

まずは、またシステム変更?大変じゃないですか?
これはデータベースへのアクセス方法によって異なります。たとえば、Hibernate と MyBatis ではソース コードを変更する必要はなく、マッピング ファイルを直接変更するだけです。
JDBC を使用してソースコード内に SQL 文を記述する場合、ソースコード内の SQL 文を繰り返し修正する以外に方法はありません。

次に、次回このようなことが起こらないようにするにはどうすればよいでしょうか?
MyBatis や Hibernate などのデータベース永続層フレームワークを使用してみてください。

第三に、次のような cms を書く利点は何ですか: "SELECT * FROM `#@__freelist` WHERE aid='$fid' "
この SQL をよく見てください、#@__freelist の前に記号があります。など、これは実際には最後です。SQL ステートメントを生成するときは、問題を解決できる構成ファイルで指定された変数に置き換える必要があります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:CMS開発の問題次の記事:CMS開発の問題