Моделирование данных с использованием mongoose для отслеживания ставок на спорт - PullRequest
0 голосов
/ 25 октября 2019

Я создал простое приложение для отслеживания спортивных ставок, пока изучаю стек MERN. Пользователи могут отслеживать свои спортивные ставки и просматривать различные статистические данные об их производительности. В настоящее время он поддерживает только отслеживание отдельных ставок (1 выбор в ставке), и я хотел бы добавить возможность отслеживать несколько ставок (> 1 выбор в ставке). Каждый выбор в множественной ставке будет иметь те же данные, что и одна ставка eventDate, sport, event, selection odds и т. Д. Я просто ищу несколько советов о том, как лучше добавить эту ставку. в. Модель ставок в настоящее время выглядит следующим образом

const betSchema = mongoose.Schema({
  eventDate: {
    type: Date
  },
  sport: {
    type: String
  },
  event: {
    type: String
  },
  market: {
    type: String
  },
  selection: {
    type: String
  },
  odds: {
    type: Number
  },
  result: {
    type: String,
    default: 'Pending'
  },
  stake: {
    type: Number
  },
  owner: {
    type: mongoose.Schema.Types.ObjectId,
    required: true,
    ref: 'User'
  }
}, {
  timestamps: true
})

В дальнейшем ставка может иметь один или несколько вариантов, поэтому я подумал, что это должно стать массивом. Если у него есть один выбор, шансы на ставку будут равны коэффициентам этого выбора, но если у него есть несколько вариантов выбора, то шансы на ставку будут умноженными коэффициентами выбора. Если один выбор из нескольких ставок проигрывает, ставка считается проигрышем. Я думал о чем-то вроде следующей настройки, но я не уверен, так как у меня нет большого опыта работы с базами данных, какая помощь будет оценена.

const betSchema = mongoose.Schema({
  selections: [{
    sport: {
      type: String
    },
    event: {
      type: String
    },
    eventDate: {
      type: Date
    },
    market: {
      type: String
    },
    selection: {
      type: String
    },
    result: {
      type: String
    },
    odds: {
      type: Number
    },
  }],
  odds: {
    type: Number
  },
  stake: {
    type: Number
  },
  result: {
    type: String,
    default: 'Pending'
  },
  owner: {
    type: mongoose.Schema.Types.ObjectId,
    required: true,
    ref: 'User'
  }
}, {
  timestamps: true
})

1 Ответ

0 голосов
/ 30 октября 2019

Я использовал схему, показанную в вопросе, но не уверен, что это лучшее решение, но оно работает для того, что я пытаюсь построить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...