Как сказано в заголовке, у меня есть 2 вопроса, первый из них - как я должен структурировать свои данные, допустим, у меня есть сущность гильдии, мне нужен только идентификатор гильдии, чтобы получить больше данных из API, я хочу, чтобы гильдия иметь несколько параметров, таких как префикс, язык и т. д. c, должен ли я создавать новый объект для каждого параметра, используя гильдию в качестве первичного ключа, или иметь один объект параметров, например
@Entity()
export class GuildSettings extends BaseEntity {
@PrimaryColumn()
guildId!: string;
@Column()
prefix!: string;
@Column()
language!: string
@Column()
updatedByUserId!: string;
@UpdateDateColumn()
updatedAt!: Date;
}
Мой второй вопрос: стоит ли делать кеширование в единой (Postgres) базе? Пожалуйста, просмотрите запросы ниже
query: SELECT * FROM "query-result-cache" "cache" WHERE "cache"."query" = $1 -- PARAMETERS: ["SELECT \"GuildSettings\".\"prefix\" AS \"GuildSettings_prefix\", \"GuildSettings\".\"guildId\" AS \"GuildSettings_guildId\" FROM \"guild_settings\" \"GuildSettings\" WHERE \"GuildSettings\".\"guildId\" IN ($1) -- PARAMETERS: [\"699180262981894235\"]"]
query: SELECT "GuildSettings"."prefix" AS "GuildSettings_prefix", "GuildSettings"."guildId" AS "GuildSettings_guildId" FROM "guild_settings" "GuildSettings" WHERE "GuildSettings"."guildId" IN ($1) -- PARAMETERS: ["699180262981894235"]
query: UPDATE "query-result-cache" SET "identifier" = $1, "query" = $2, "time" = $3, "duration" = $4, "result" = $5 WHERE "query" = $6 -- PARAMETERS: [null,"SELECT \"GuildSettings\".\"prefix\" AS \"GuildSettings_prefix\", \"GuildSettings\".\"guildId\" AS \"GuildSettings_guildId\" FROM \"guild_settings\" \"GuildSettings\" WHERE \"GuildSettings\".\"guildId\" IN ($1) -- PARAMETERS: [\"699180262981894235\"]",1588663024258,60000,"[]","SELECT \"GuildSettings\".\"prefix\" AS \"GuildSettings_prefix\", \"GuildSettings\".\"guildId\" AS \"GuildSettings_guildId\" FROM \"guild_settings\" \"GuildSettings\" WHERE \"GuildSettings\".\"guildId\" IN ($1) -- PARAMETERS: [\"699180262981894235\"]"]
query: SELECT * FROM "query-result-cache" "cache" WHERE "cache"."query" = $1 -- PARAMETERS: ["SELECT \"GuildSettings\".\"prefix\" AS \"GuildSettings_prefix\", \"GuildSettings\".\"guildId\" AS \"GuildSettings_guildId\" FROM \"guild_settings\" \"GuildSettings\" WHERE \"GuildSettings\".\"guildId\" IN ($1) -- PARAMETERS: [\"699180262981894235\"]"]
Или я должен извлечь часть кеширования во что-то вроде Redis?