Работа над идеей для сайта Вопрос / Ответ / Блог. Для содержания каждого из них я могу хранить их все в одной таблице с некоторыми столбцами, применяющими или не применяющими к каждому из этих различных типов столбец типа, чтобы различать каждый - ИЛИ, я могу разделить их на две таблицы. Вопрос / Блог, и Ответить (или другое комбинированное) или в 3 таблицы, по одной для каждого типа.
В одной идее таблицы столбцы будут выглядеть следующим образом: id / heading / detail / type / qid
ВОПРОС: используется заголовок, деталь, тип
БЛОГ: использует заголовок, деталь, тип (qid соответствует вопросу, если он назначен как ответ, но не типично)
ОТВЕТ: использует detail, type, qid (qid соответствует id вопроса, не использует столбец заголовка)
Может существовать еще один или два столбца (не показаны), которые могут относиться к одному типу, а не к другому.
Я думаю, что хранить все на Таблица может упростить запросы, если между ними есть взаимосвязь, но таблица становится намного больше быстрее ... Какой хороший подход к такой структуре базы данных / таблицы с учетом того, что это сообщество может со временем стать довольно большим (10 КБ для 100K активных пользователей)?
Некоторые типичные отношения:
A будет относиться к Q как к ответу (ответам) на Q. Может быть несколько ответов на Q. Q, A, Все B будут перечислены в одном и том же окне с флажками выбора, чтобы показать / скрыть Q & A или B или ОБА. Ответы на Q могут быть связаны с A или B (пользователи могут назначить блог в качестве ответа, но ожидают, что он будет реже). Количество A значительно перевесит их все, с Q следующим и B наименьшим.
Я склоняюсь к одному столу для Q / B и другому столу для A - НО у меня нет хорошего четкого обоснования для этого. (У вас недостаточно опыта, чтобы рассматривать вещи с точки зрения масштабируемости, ремонтопригодности, нормальности, надежности, ясности и т. Д. c. И будущего влияния.) Может быть, приоритет будет масштабируемость и ремонтопригодность?
Спасибо за ваши мысли !