Я разрабатываю таблицу базы данных, в которой хранятся все запросы, которые искали пользователь (чтобы я мог использовать его для автозапусков). Кроме того, я хотел хранить данные, например, кто их искал, и время, когда запрос был выполнен.Лучший способ для проектирования таблицы
У меня есть два подхода в виду:
{
_id: "some-random-value-1",
query: "this is the query",
user: "username-1",
date: "query-time-1"
}
{
_id: "some-random-value-2",
query: "this is the query",
user: "username-2",
date: "query-time-2"
}
и:
{
_id: "some-random-value",
query: "this is the query",
query-details: [
{user: "username-1", date:"query-time-1"},
{user: "username-2", date:"query-time-2"}
]
}
Как вы можете видеть, первый один экономит несколько запросов одного и того же поискового запроса.
Итак, что является лучшим способом из двух (если предположить, есть еще лучше), даже если в будущем, если я хотел детали, как получать количество запросов и т.д.
Конструкции с неограниченным ростом документа не будут работать хорошо во многих базах данных NoSql, включая MongoDb. Документы mongoDb не должны превышать 16 МБ. В то время как это велико, вам нужно подумать о том, что произойдет, когда он попал. Любая структура может работать, если вы не беспокоитесь об этом, вам нужно рассмотреть, какие типы запросов вам понадобятся, и как применять их к вашим структурам. – WiredPrairie
Хорошо. Также я хотел проиндексировать запрос. В случае, если 1 не будет проблемой – shanks
Это не будет проблемой, вероятно, во втором выборе либо в зависимости от запросов. Я бы предложил прочитать больше руководств по моделированию данных на веб-сайте MongoDB, чтобы получить более глубокое представление о плюсах и минусах различных моделей. – WiredPrairie