What is the best database structure for implementing a referral system with 3 levels in PHP?
When implementing a referral system with 3 levels in PHP, the best database structure would involve having a single table to store user information and another table to store the referral relationships between users. Each user record would have a field to store their referrer's ID, allowing for tracking of multiple levels of referrals.
// Database structure
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
referrer_id INT
);
CREATE TABLE referrals (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
referrer_id INT
);
// PHP code to track referrals
function addReferral($userId, $referrerId) {
// Insert referral record into referrals table
$sql = "INSERT INTO referrals (user_id, referrer_id) VALUES ($userId, $referrerId)";
// Execute SQL query
}
function getReferralChain($userId) {
$referralChain = array();
$referrerId = $userId;
while ($referrerId != null) {
// Get referrer ID from referrals table
$sql = "SELECT referrer_id FROM referrals WHERE user_id = $referrerId";
// Execute SQL query and store result in $referrerId
$referralChain[] = $referrerId;
}
return $referralChain;
}