支払い機能を実装するために安全な MySQL テーブル構造を設計するにはどうすればよいですか?
電子商取引の急速な発展に伴い、支払い機能は Web サイトやアプリケーションの中核的な要件の 1 つになりました。安全な MySQL テーブル構造を設計することは、支払い機能の信頼性とセキュリティを確保するための重要なステップです。この記事では、支払い機能を実装するための安全な MySQL テーブル構造を設計する方法を紹介し、具体的なコード例を示します。
決済機能を実装するには、まずユーザーの基本情報を保存するユーザー テーブルを設計する必要があります。ユーザー テーブルには少なくとも次のフィールドが含まれている必要があります:
ユーザーテーブルを作成するSQL文の例:
CREATE TABLE `user` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `username` VARCHAR(50) NOT NULL, `password` VARCHAR(255) NOT NULL, `email` VARCHAR(100) NOT NULL, `phone` VARCHAR(20) NOT NULL, `balance` DECIMAL(10, 2) NOT NULL DEFAULT '0.00', PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`), UNIQUE KEY `email` (`email`), UNIQUE KEY `phone` (`phone`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
次に、ユーザーの支払い注文情報を記録する注文テーブルを設計する必要があります。注文テーブルには、少なくとも次のフィールドが含まれている必要があります。
CREATE TABLE `order` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `user_id` INT(10) UNSIGNED NOT NULL, `order_no` VARCHAR(50) NOT NULL, `amount` DECIMAL(10, 2) NOT NULL, `status` ENUM('pending', 'paid', 'cancelled') NOT NULL DEFAULT 'pending', PRIMARY KEY (`id`), FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `payment` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `order_id` INT(10) UNSIGNED NOT NULL, `payment_method` VARCHAR(50) NOT NULL, `payment_time` DATETIME NOT NULL, `payment_status` ENUM('success', 'failed') NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`order_id`) REFERENCES `order`(`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
<?php $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "payment"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $conn->prepare("INSERT INTO `user` (username, password, email, phone) VALUES (:username, :password, :email, :phone)"); $stmt->bindParam(':username', $username); $stmt->bindParam(':password', $password); $stmt->bindParam(':email', $email); $stmt->bindParam(':phone', $phone); // 设置参数 $username = "test"; $password = password_hash("123456", PASSWORD_DEFAULT); $email = "test@example.com"; $phone = "1234567890"; $stmt->execute(); echo "插入数据成功"; } catch(PDOException $e) { echo "Error: " . $e->getMessage(); } $conn = null; ?>上記のコード サンプルは、ユーザーを作成し、関連情報をユーザー テーブルに挿入する方法を示しています。 概要: 上記の手順を通じて、支払い機能を実装するための安全な MySQL テーブル構造を設計しました。このテーブル構造には、ユーザー テーブル、注文テーブル、支払記録テーブルが含まれます。正しいテーブル構造設計により、決済機能の信頼性と安全性を確保できます。同時に、特定のビジネスニーズに応じて、実際の状況に応じてテーブル構造を適切に拡張および最適化できます。
以上が支払い機能を実装するために安全な MySQL テーブル構造を設計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。