Встречается на собеседованиях • сегодня
Как реализуешь рефереальную систему с точки зрения архитектуры
Для реализации реферальной системы можно использовать следующую архитектуру:
- Модели данных:
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
интервью вопросы и ответы