javascript - MongoDB & Prisma: hubungan M-ke-N unilateral


Apakah ada cara untuk membuat hubungan m-ke-n sepihak atau apakah kedua koleksi harus memiliki id masing-masing? Saya sedang mencoba melakukan sesuatu seperti ini:

model Country {
  id              String    @id @default(auto()) @map("_id") @db.ObjectId
  name            String    @unique
  users           User[]
}

model User {
  id              String    @id @default(auto()) @map("_id") @db.ObjectId
  userName        String    @unique
  countryIds      String[]  @db.ObjectId
  countries       Country[] @relation(fields: [countryIds], references: [id])
  // ....
}

Tapi prisma membuatku menambahkan bidang lain ke Country untuk menyimpan id pengguna... Seperti ini:

model Country {
  id              String    @id @default(auto()) @map("_id") @db.ObjectId
  name            String    @unique
  userIds         String[]  @db.ObjectId
  users           Player[]  @relation(fields: [userIds], references: [id])
}

Saya tidak membutuhkan data itu dan secara logis tidak diperlukan. Apakah ada cara untuk melewatinya? Ada jalan lain?

Jawaban #1

Setelah beberapa pengujian, saya menemukan bahwa jika saya membiarkan bidang userIds itu, meskipun tidak ada di dokumen manapun, negara-negara pengguna masih bisa di-query dengan benar. Satu-satunya kelemahan (tidak begitu) adalah saya tidak bisa men-query pengguna dari negara-negara tersebut. Tapi saya rasa itu masuk akal karena jika saya benar-benar perlu men-query mereka, menambahkan relasi userIds ke negara juga masuk akal. Masalah sebenarnya adalah error yang tidak membiarkan saya membangun/menjalankan kode tanpa userIds meskipun kode bekerja dengan baik tanpa itu.

EDIT:

Skema saya akhirnya seperti ini @Min Somai:

model Country {
  id              String    @id @default(auto()) @map("_id") @db.ObjectId
  name            String    @unique
  userIds         String[]  @db.ObjectId
  users           User[]    @relation(fields: [countryIds], references: [id])
}

model User {
  id              String    @id @default(auto()) @map("_id") @db.ObjectId
  userName        String    @unique
  countryIds      String[]  @db.ObjectId
  countries       Country[] @relation(fields: [countryIds], references: [id])
  // ....
}