Я работаю над приложением, в котором пользователь может иметь один из двух видов отношений с другими пользователями --- либо favoriting
с ними, либо following
с ними --- и я полагаю, что обратные действия, is favorited by
и is being follow by
, также появятся как методы. Я хочу позвонить.
Какие соображения я должен учитывать при создании пользовательской модели? В частности, у меня должна быть одна модель отношений, которая определяет:
Relationships
user_1 | relationship_type | user_2
где тип_отношения равен favoriting
или following
?
Или у меня должно быть 2 отдельные модели:
Favorites
user_1 | user_2
Follows
user_1 | user_2
Я не так уж много знаю о базах данных, поэтому могу ли я спросить, каковы соображения при выборе между этими двумя потенциальными настройками? 2 более нормализовано, чем 3, или меньше? Это имеет значение? При каких обстоятельствах?
ОБНОВЛЕНИЕ
Извините, это меня просто поразило: скажем, есть третье отношение, например «отзывы» / «обзоры_от» — и вопрос касается 3, а не 2 разных типов двунаправленных отношений. Влияет ли на это увеличение количества типов отношений?
Favorites
user_1 | user_2
Follows
user_1 | user_2
Reviews
user_1 | user_2