Salva elemento attivo in un array

0

In un database NoSQL (MongoDB), ho bisogno di memorizzare un elenco di creditcards per un user e di tenere traccia di quale è active .

Mi sono imbattuto in 3 modelli:

# 1 Conserva la proprietà active nello schema Creditcard

User
| _id: String
| creditcards: [Creditcard]
| ...

Creditcard
| _id: String
| active: Boolean
| ...

# 2 Conserva il riferimento del Creditcard attivo nello schema User

User
| _id: String
| creditcards: [Creditcard]
| activeCreditcard: Creditcard
| ...

Creditcard
| _id: String
| ...

# 3 Archivia un elenco di creditcard e active oggetti nello schema User

User
| _id: String
| creditcards: [{ creditcard: Creditcard, active: Boolean }]
| ...

Creditcard
| _id: String
| ...

Ho iniziato a implementare il primo, ma quando ho avuto bisogno di aggiornare il creditcards e quale era attivo, non ero sicuro che questo fosse il modello migliore.

Quindi, ho cercato di trovare soluzioni diverse ma non posso scegliere. Qualche raccomandazione?

    
posta Kerumen 29.12.2016 - 17:09
fonte

1 risposta

1

Il primo aspetto mi sembra troppo relazionale per MongoDB. So che non è un peccato, ma sembra che sia per un RDBMS. Per un database di documenti manterrei tutto come un unico documento e contrassegno semplicemente uno come attivo. È come il n. 2, ma non so cosa faccia quel secondo documento CreditCard.

-------------------
 key               
 ------------------
 _id               
 customer_id       
 credit_card       
 active  



db.customer_card.insert({customer_id: "AFB123", credit_card: 1234567812347890, active:true} )

db.customer_card.find({customer_id: {$eq: "AFB123"}, active:{$eq: true})
or
db.customer_card.find({customer_id: "AFB123", active:true})

Dovrai testare i comandi. Non ho potuto testarli.

    
risposta data 29.12.2016 - 17:26
fonte

Leggi altre domande sui tag