Для начала, (а раз вы задаете подобного рода вопросы, у вас только начало) попробуйте найти готовое популярное решение для вашего фреймворка. Обычно, готовое, не всегда идеальное для задачи. Но это будет лучше, чем вы будете выдумывать велосипеды с нуля.
Так же вы разберетесь, как делают "умные" люди. А уже после этого, сможете сделать "идеальное" решение под свою задачу, если вдруг, готовое вас не устроит