一个用户在不同表里都有记录,怎么删除比较好?
目前后台有一个删除用户的功能,但是由于功能模块很多,需要清理用户在多张表下的记录。
<code> //清除该用户的所有发布的文章以及文章关联的标签 //清除该用户的所有关注的标签 //清除该用户的所有问题 //清除该用户的所有回答 //清除该用户的所有积分 //清除该用户的所有评论 //清除该用户的所有收藏 //清除该用户的所有问题关注 //清除该用户的所有私信 //清除该用户的所有消息通知 //清除该用户的所有草稿 //清除赠送给用户的所有邀请码 //清除该用户所有的邀请回答 //清除该用户的好友关系 //清空用户统计表 //清除用户的报名记录 .... </code>
大家一般如何处理,是确实清除这些相关信息么。还是对删除的用户信息进行保留,只是用标识不做查询??
回复内容:
目前后台有一个删除用户的功能,但是由于功能模块很多,需要清理用户在多张表下的记录。
<code> //清除该用户的所有发布的文章以及文章关联的标签 //清除该用户的所有关注的标签 //清除该用户的所有问题 //清除该用户的所有回答 //清除该用户的所有积分 //清除该用户的所有评论 //清除该用户的所有收藏 //清除该用户的所有问题关注 //清除该用户的所有私信 //清除该用户的所有消息通知 //清除该用户的所有草稿 //清除赠送给用户的所有邀请码 //清除该用户所有的邀请回答 //清除该用户的好友关系 //清空用户统计表 //清除用户的报名记录 .... </code>
大家一般如何处理,是确实清除这些相关信息么。还是对删除的用户信息进行保留,只是用标识不做查询??
首先,如上面各位所说,尽量不要删除重要数据。
其次,如果你确实需要实现主表删除,从表自动删除的功能。只需要在数据库里添加外键,并设置为ON DELETE CASCADE。
这种外键在删除主表数据时,会自动删除从表中执行被删除数据的记录。只要外键设计的好。主表删除一条数据,一堆从表跟着删得尸横片野……
最好是在表中新增一个字段,标识出该条记录是否删除。
设置一个标识字段,将用户标识为已经删除,之后查找的时候,所有与用户相关的个人数据就无法在查找到也就不用做过多的操作。至于统计之类的则可以多加一个对于用户是否可用的判断即可。
我觉得也是,数据一定不要删,保不齐你那天又想要了。没了可咋整。。
一个事物保准给她删的干干静静
放在一个数据库事务中,一起删除
参考laravel的soft delete 增加一个字段delete_at 默认为null 删除的时候更新为当前时间
你敢删数据?!我报警了!

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











MySQLとPHPMyAdminは、強力なデータベース管理ツールです。 1)MySQLは、データベースとテーブルを作成し、DMLおよびSQLクエリを実行するために使用されます。 2)PHPMyAdminは、データベース管理、テーブル構造管理、データ操作、ユーザー許可管理のための直感的なインターフェイスを提供します。

Oracleはデータベース会社だけでなく、クラウドコンピューティングとERPシステムのリーダーでもあります。 1。Oracleは、データベースからクラウドサービスおよびERPシステムへの包括的なソリューションを提供します。 2。Oraclecloudは、AWSとAzureに挑戦し、IAAS、PAAS、SAASサービスを提供します。 3. e-businesssuiteやfusionApplicationsなどのOracleのERPシステムは、企業がオペレーションを最適化するのに役立ちます。

IISとPHPは互換性があり、FastCGIを通じて実装されています。 1..phpファイル要求を構成ファイルを介してFastCGIモジュールに転送します。 2. FASTCGIモジュールは、PHPプロセスを開始して、パフォーマンスと安定性を改善するための要求を処理します。 3。実際のアプリケーションでは、構成の詳細、エラーデバッグ、パフォーマンスの最適化に注意する必要があります。

MySQLでは、外部キーの機能は、テーブル間の関係を確立し、データの一貫性と整合性を確保することです。外部キーは、参照整合性チェックとカスケード操作を通じてデータの有効性を維持します。パフォーマンスの最適化に注意し、それらを使用するときに一般的なエラーを避けてください。

MySQLとMariaDBの主な違いは、パフォーマンス、機能、ライセンスです。1。MySQLはOracleによって開発され、Mariadbはフォークです。 2. Mariadbは、高負荷環境でパフォーマンスを向上させる可能性があります。 3.MariaDBは、より多くのストレージエンジンと機能を提供します。 4.MySQLは二重ライセンスを採用し、MariaDBは完全にオープンソースです。既存のインフラストラクチャ、パフォーマンス要件、機能要件、およびライセンスコストを選択する際に考慮する必要があります。

SQLはリレーショナルデータベースを管理するための標準言語であり、MySQLはSQLを使用するデータベース管理システムです。 SQLは、CRUD操作を含むデータベースと対話する方法を定義しますが、MySQLはSQL標準を実装し、ストアドプロシージャやトリガーなどの追加機能を提供します。

Redisは、主にデータベース、キャッシュ、メッセージブローカーとして使用されるメモリデータ構造ストレージシステムです。そのコア機能には、シングルスレッドモデル、I/O多重化、持続メカニズム、複製、クラスタリング機能が含まれます。 Redisは、キャッシュ、セッションストレージ、メッセージキューのための実際のアプリケーションで一般的に使用されます。適切なデータ構造を選択し、パイプラインとトランザクションを使用し、監視とチューニングを使用することにより、パフォーマンスを大幅に改善できます。

MySQLは、迅速な開発や中小規模のアプリケーションに適していますが、Oracleは大規模な企業や高可用性のニーズに適しています。 1)MySQLはオープンソースで使いやすく、Webアプリケーションや中小企業に適しています。 2)Oracleは強力で、大企業や政府機関に適しています。 3)MySQLはさまざまなストレージエンジンをサポートし、Oracleは豊富なエンタープライズレベルの機能を提供します。
