ホームページ バックエンド開発 PHPチュートリアル データベース設計の混乱とその解決方法

データベース設計の混乱とその解決方法

Jun 13, 2016 pm 01:44 PM
join quot

データベース設計に関する混乱
状況はこんな感じです。以前Webサイトを構築していた時、「おすすめ」や「トップ」などが出てくると、必ず「IsTop」や「IsDelete」などのフィールドをテーブルに追加していました。 " などの場合は BOOL 型を使用します。しかし、私が最近新しい会社に来たとき、会社のリーダーたちはこれをしませんでした。例: 「IsTop」は削除するかどうかを示すため、news_delete テーブルを作成し、その中のレコードは「IsTop」の ID 値になります。

これは良いアイデアで、とても使いやすそうです。同様のものを追加する場合、元のテーブルを変更する必要はありません。データベース設計の専門家にどうすればよいかを聞きたいです。

-----解決策--------------------------------
データを感じられれば大丈夫です 構造が複雑な場合は、2番目の方法に従って設計し、分割すれば大丈夫です。
------解決策---------
寛容になることを学びましょう
あなたの説明として、特定のルールはありません

追加の属性は基本データと密接に関連しています
明らかに、あなたのソリューションは分割テーブル ソリューションよりも優れています
------解決策----------------------
フィールドをカスタマイズする 2 つの方法、1 つは追加する方法です。もう 1 つは、値を保存するためのカスタム フィールド テーブルを作成することです。個人的には、後者はステートメントがやや複雑で、検索が不便で、結合操作が必要になります。前者は単純かつ乱暴で、検索用のインデックスを設定するのに便利ですが、両方のオプションを保持し、特定の問題に対して特定の方法を実装するのが最善です。
------解決策---------

話し合う

引用:
許容誤差を学習します
説明に特定のルールはありません

追加の属性は基本データと密接に関連しています
明らかに、あなたのソリューションはより優れていますサブテーブル ソリューション


つまり、私のソリューションは効率とパフォーマンスが良く、使いやすいということですね。それは正しい。

------解決策---------
話し合う

引用:
フィールドをカスタマイズするには 2 つの方法があります。1 つはこのテーブルにフィールドを追加する方法、もう 1 つは値を保存するカスタム フィールド テーブルを作成する方法です。個人的には、後者はステートメントがやや複雑で、検索が不便で、結合操作が必要になります。前者は単純かつ乱暴で、検索用のインデックスを設定するのは便利ですが、両方のオプションを保持し、特定の問題に対して特定の方法を実装するのが最善です。

foolbirdflyfirst には...

------解決策------------------
問題は解決したので投稿を閉じます。債券金利を見てください。 0% 投稿: 7 通常投稿: 0
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQLでJOINを使用する方法 MySQLでJOINを使用する方法 Jun 04, 2023 am 08:02 AM

JOIN の意味は英語の「結合」と同じで、2 つのテーブルを結合するもので、内部結合、外部結合、右結合、左結合、自然結合に大別されます。まず 2 つのテーブルを作成します。例として次のものが使用されます。 CREATETABLEt_blog(idINTPRIMARYKEYAUTO_INCREMENT,titleVARCHAR(50),typeIdINT);SELECT*FROMt_blog;+----+------+--------+ | id|title|typeId|+----+----------+--------+|1|aaa|1||2|bbb|2||3|ccc|3 |

MySQL Join の使用原理は何ですか? MySQL Join の使用原理は何ですか? May 26, 2023 am 10:07 AM

結合タイプ leftjoin は、左側のテーブルを駆動テーブルとして使用し、左側のテーブルを結果セットの基礎として使用します。右側のテーブルのデータは結果セットに接続されます。rightjoin は、右側のテーブルを駆動テーブルとして使用し、右側のテーブルを結果セットとして使用します。左側のテーブルを接続するための結果セットの基礎 データは結果セットの innerjoin に追加されます 結果セットは 2 つのテーブルの共通部分を取得します fulljoin 結果セットは 2 つのテーブルの結合を取得します MySQL にはfulljoin。union と Unionall の違いは、union がクロスジョインのデカルト積の重複を排除することです。where 条件が使用されていない場合、結果セットは、関連付けられた 2 つのテーブル行の積になります。違いは、クロスジョインが結果を作成するときの点です。設定されている場合は、on 条件に従って渡されます。

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

mysqlの結合クエリと複数のクエリ方法とは何ですか? mysqlの結合クエリと複数のクエリ方法とは何ですか? Jun 02, 2023 pm 04:29 PM

結合クエリと複数のクエリを比較すると、MySQL の複数テーブル関連のクエリと複数の単一テーブルのクエリのどちらが効率的ですか?データの量が十分に大きくない場合、結合を使用しても問題ありませんが、通常はサービス層で実行されます。第一に、スタンドアロン データベースのコンピューティング リソースは非常に高価であり、データベースは書き込みと書き込みの両方に対応する必要があります。データベースを作成するために、スループットが高くなり、数百マイクロ秒からミリ秒の遅延ギャップを気にする必要がなくなり、ビジネスはより多くの計算をサービス層に投入するようになります。結局のところ、コンピューティングリソースは水平拡張が容易で、データベースは難しいので、ほとんどのビジネスは純粋なコンピューティング操作をサービス層に置き、データベースをトランザクション機能を備えたkvシステムとして使用する重いビジネスです。

MySQLでJOINを使用する方法 MySQLでJOINを使用する方法 Jun 03, 2023 am 09:30 AM

はじめに A のユニーク + AB のパブリック B のユニーク + AB のパブリック AB のパブリック A のユニーク B のユニーク A のユニーク + B のユニーク + AB のパブリック A のユニーク + B のユニーク テーブル部門テーブルの作成の練習 DROPTABLEIFEXISTS`dept`;CREATETABLE`dept`(`dept_id`int( 11)NOTNULLAUTO_INCREMENT,`dept_name`varchar(30)DEFAULTNULL,`dept_number`int(11)DEFAULTNULL,PRIMARYKEY(`dept_id`))ENGINE =InnoDBAUT

MySQL の JOIN 関数を使用してテーブルを結合する MySQL の JOIN 関数を使用してテーブルを結合する Jul 26, 2023 am 08:37 AM

MySQL の JOIN 関数を使用してテーブルを結合する MySQL では、JOIN は非常に一般的な操作であり、テーブル間に関連付けられたフィールドに基づいて 2 つ以上のテーブルを結合できます。これにより、クエリを実行して複数のテーブルから関連データを取得することが容易になり、クエリの効率と柔軟性が向上します。この記事では、コード例を使用して、MySQL の JOIN 関数を使用してテーブルを結合する方法を示します。まず、学生とスコアの 2 つのサンプル テーブルを作成します。学生テーブルには学生が含まれています

MySQL で join ステートメントを最適化する方法 MySQL で join ステートメントを最適化する方法 Jun 03, 2023 am 09:31 AM

SimpleNested-LoopJoin 結合操作を実行するときに mysql がどのように動作するかを見てみましょう。一般的な結合方法は何ですか?図に示すように、接続操作を実行すると、左側のテーブルが駆動テーブル、右側のテーブルが駆動テーブルになります。次に、駆動テーブルのレコードを 1 つずつ照合し、条件に一致する場合は結果を返します。次に、ドライバー テーブル内のすべてのデータが一致するまで、ドライバー テーブル内の次のレコードが照合対象となります。毎回ドライバー テーブルからデータを取得するのは時間がかかるため、MySQL はこのアルゴリズムを使用して接続操作を実行しません。 BlockNested-LoopJ

MySQL の JOIN 最適化を通じてパフォーマンスを向上させる方法 MySQL の JOIN 最適化を通じてパフォーマンスを向上させる方法 May 11, 2023 am 08:48 AM

ほとんどの Web アプリケーションでは、データベース操作が最も基本的かつ重要な部分です。現在、最も一般的に使用されているリレーショナル データベース管理システムとして、MySQL は無数の Web サイトとアプリケーションをホストしていますが、大規模なデータ処理とクエリ アクセスに対するプレッシャーも増大しています。この文脈において、パフォーマンスの最適化は MySQL データベース管理の重要な部分となっており、JOIN 操作が重要なポイントとなります。 JOIN 接続は、MySQL で最も一般的に使用されるデータ クエリ ステートメントの 1 つです。存在する

See all articles