Встречается на собеседованиях • сегодня

Как реализуешь рефереальную систему с точки зрения архитектуры

Для реализации реферальной системы можно использовать следующую архитектуру:

  1. Модели данных:
python
class User(models.Model):
    username = models.CharField(max_length=100)
    referrer = models.ForeignKey('self', null=True, on_delete=models.SET_NULL)
    referral_code = models.CharField(max_length=10, unique=True)

class Referral(models.Model):
referrer = models.ForeignKey(User, related_name='referrals')
referee = models.OneToOneField(User, related_name='referred_by')
created_at = models.DateTimeField(auto_now_add=True)

text

2. **Логика работы**:
- Генерация уникального referral_code для каждого пользователя
- Хранение связи между реферером и рефералом
- Механизм начисления бонусов (через Celery или фоновые задачи)

3. **API endpoints**:
- `POST /api/referral/generate-code` - создать реферальный код
- `GET /api/referral/stats` - получить статистику
- `POST /api/referral/apply` - применить реферальный код

4. **Масштабирование**:
- Кэширование статистики (Redis)
- Асинхронная обработка начислений
- Отдельный микросервис для сложной логики

Важно предусмотреть защиту от накруток и верификацию рефералов.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы