>

약 30 개의 필드가있는 사용자 스키마와 다른 3 개의 스키마가 있다고 가정합니다.

UserSchema.js

user_schema = new Schema({
    user_id: { type: String},
    .........//30 properties
});
ctrs_schema = new Schema({
    .........10 properties
});
ids_schema = new Schema({
    .........5 properties
});
comments_schema = new Schema({
    .........10 properties
});

이제 사용자의 성별을 바꿀 경로를 작성 중입니다. 이제이를 수행하기 위해UserSchema.js를 사용할 수 있지만 모든 스키마를 내 경로에로드합니다. 두 개의 필드가있는 스키마가 하나만있는 새 파일을 만든 경우 모든 스키마가 경로의 메모리에로드되지 않습니다.

UserGenderSchema.js

gender_schema = new Schema({
    user_id: { type: String},
    gender: { type: String}
});

두 가지 방법의 장단점이 있다는 것을 알고 있습니다

전문가-

I have to edit only in single file if I would have to change something for any field.

단점-

All Schemas are Loading for all routes which are unnecesary. Memory Wastage.

스레드의 두 방법 사이에 메모리 사용량이 적습니까?

누구나 어떤 아키텍처가 더 좋을지 또는 프로젝트에서 구현할 이유와 그 이유를 알려주십시오.

감사합니다

  • 답변 # 1

    사용자 관련 필드를 하나의 스키마로 유지하는 것이 좋습니다. 관계형 구조가 아니기 때문에 mongo가 있었기 때문에 관계형 구조를 멀리하여 성능을 얻었습니다. 따라서 각 필드에 대한 스키마를 만든 다음 생성하면 관련있는 사용자를 가리키는 각각의 참조, 몽고를 사용하여 밀접한 관계 구조를 구축하고 있으며 몽고는이 상황에서와 같이 좋지 않으므로 나중에 응용 프로그램에서 원하는 경우 어떤 방식 으로든 사용자의 모든 정보를 표시하거나 여러 사용자 필드를 업데이트하거나 경로 또는 다른 방법으로 사용자의 추가 정보를 표시하려고하면 심각한 성능 문제가 발생할 수 있습니다. 결론적으로 한 스키마 만 처리하기 위해 모든 스키마를로드하는 데 드는 비용은 데이터 구조를 분해하는 데 드는 비용만큼이 아닙니다.

관련 자료

  • 이전 powerquery - Power Query에서 다른 열의 여러 값을 기반으로 ID를 만들려면 어떻게합니까?
  • 다음 python - OpenCV는 유사한 객체 간의 차이점을 식별합니다