В качестве примера я возьму упрощенную систему StackOverflow.
Несмотря на ограничение некоторых функций, возможно, можно будет держать Вопросы и Ответы в одной таблице:
(Django-esque pseudo-code)
QA table:
parent = ForeignKey(self)
category = ForeignKey(Category)
title = CharField()
description = TextField()
Тогда, чтобы получить Вопросы и Ответы на Вопрос с ID 1, SQL SELECT будет сделан для id==1
или parent==1
.Недостатком может быть то, что поля tags
и title
не используются Ответами
Альтернативой, конечно, могут быть две таблицы:
Questions:
category = ForeignKey(Category)
title = CharField()
description = TextField()
Answers:
parent = ForeignKey(Questions)
description = TextField()
, которые потребуют два запроса дляполучите вопросы и ответы.
Инстинкт говорит, что первое - ужасная идея, но я не уверен почему.
Что быстрее и масштабируемее?