Saya merancang program simulasi bisbol dan saya telah mengalami masalah dengan merancang skema boxscore. Masalah yang saya miliki adalah bahwa saya ingin melacak berapa banyak skor berjalan di setiap inning. Cara saya melakukan ini dalam program yang sebenarnya adalah dengan menggunakan array dinamis yang tumbuh untuk setiap inning yang dimainkan.
Bagi mereka yang tidak terbiasa dengan permainan bisbol, permainan biasanya sembilan babak inning kecuali jika permainan terikat masih pada akhir inning ke-9. Oleh karena itu, permainan bisbol, memiliki panjang yang tidak ditentukan yang berarti saya tidak dapat mendesain database hanya memiliki 9 kolom untuk skor setiap inning (baik secara teknis 18 (9-inning * 2-tim) .Satu ide yang saya miliki adalah mengurutkan array dan menyandikannya sebagai Base64 sebelum menyimpannya dalam database. Namun, saya tidak tahu apakah ini teknik yang baik untuk digunakan dan saya bertanya-tanya apakah ada yang punya ide yang lebih baik.
Dalam hal ini penting, basis data yang saya kembangkan adalah PostgreSQL.
Setiap saran sangat dihargai! Terima kasih!
sumber
Saya tidak berpikir ada yang salah dengan hanya memiliki kolom
untuk 1 hingga 9 dan seterusnya. Itu salah satu dari sedikit tempat di mana menggunakan array mungkin masuk akal.
sumber
Jadi apa yang saya lihat di sini sedikit kontradiktif karena inning tidak benar-benar atribut game, kecuali secara tidak langsung. Tapi mungkin itu hanya aku. Saya pribadi akan menyarankan sesuatu yang lebih seperti tabel RunsScored, dan minta tautan balik ke meja GamesHeader, dari beberapa jenis, jadi pertimbangkan:
Itu akan memberi Anda Inning maksimum yang dimainkan untuk gim tertentu, dan Anda dapat lebih menyempurnakan oleh PlayerID -> TeamID untuk mengetahui detail lebih lanjut jika Anda menginginkannya. Apa itu mungkin saya tidak yakin.
Saya mungkin akan benar-benar memperbaiki tabel kedua agar tidak menjadi RunsScored tetapi sesuatu tentang AtBat karena itulah yang sebenarnya sedang Anda lacak. Saya hanya ingin menunjukkan bagaimana Anda bisa mendenormalisasi inning jauh dari meja permainan. Saya akan mengubah model saya mengalir seperti itu, apakah ini proyek saya. HTH. YMMV.
Perhatikan juga bahwa saya adalah seorang pria TSQL, tapi saya pikir konsep yang diungkapkan di bawah ini bekerja cukup baik untuk menjelaskan konsep saya. Semantik bahasa mungkin tidak akan berbaris.
sumber