Когда я спросил о правильном подходе к проблеме моделирования данных - используя одну или две таблицы, некоторые пользователи ответили, что самосоединения представляют собой ответственность за производительность. Это верно, учитывая следующий сценарий (база данных MySQL):
Альтернативой является моделирование вопросов, ответов и комментариев в каждой из соответствующих таблиц и, таким образом, исключение самообучения. Мне еще предстоит решить, какой подход использовать. В то время как вопрос относится к эффективности соединения, любые дополнительные рекомендации для обоих вариантов использования будут оценены.
Спасибо
Вы должны ставить вопросы и ответы в отдельных таблицах, не особенно с точки зрения производительности, а потому, что они логически разные вещи и, в противном случае, путают.
С точки зрения производительности нет особой причины, по которой одно самостоятельное объединение было бы медленным - я подозреваю, что проблема, о которой вы думаете, заключается в том, что вам нужно запросить рекурсивно, что медленно в MySQL.
Кроме того, что касается производительности, ваш дизайн означает, что ваш ключ состоит из двух полей, а не одного, поскольку вам нужно указать в условии, хотите ли вы задать вопрос или ответить. Большие ключи занимают больше времени, чтобы сравнивать - не серьезная проблема, но это может повлиять на некоторые ситуации.