Встречается на 1% собеседований по Python
Как реализуешь рефереальную систему с точки зрения архитектуры
Для реализации реферальной системы можно использовать следующую архитектуру:
- Модели данных:
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)
- Асинхронная обработка начислений
- Отдельный микросервис для сложной логики
Важно предусмотреть защиту от накруток и верификацию рефералов.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы