Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Model basis data untuk daftar Staf 24/7 di kasino

Terima kasih telah meluangkan waktu untuk menyusun pertanyaan berkualitas. Persyaratan Anda sangat bagus dan spesifikasi sistem Anda sangat detail. Saya dapat menerjemahkan spesifikasi Anda ke dalam model data grafik untuk Neo4j. Lihat di bawah.

Di atas Anda akan melihat model data grafik yang cukup jelas. Jika Anda tidak terbiasa dengan ini, saya sarankan membaca Graph Databases:http://graphdatabases.com/ -- Situs web ini Anda dapat memperoleh salinan PDF digital gratis dari buku tersebut, tetapi jika Anda ingin membeli salinan cetaknya, Anda dapat menemukannya di Amazon.

Mari kita memecah model grafik pada gambar. Di bagian atas Anda akan melihat struktur pengindeksan waktu yaitu (Tahun)->(Bulan)->(Hari)->(Jam), yang saya singkat sebagai Y M D H. Elips menunjukkan bahwa grafik berlanjut, tetapi demi ruang di layar saya hanya menunjukkan sub-grafik.

Indeks waktu ini memberi Anda cara untuk menghasilkan deret waktu atau mengajukan pertanyaan tertentu pada model data Anda yang spesifik waktu. Sangat berguna.

Bagian bawah gambar berisi model data perusahaan Anda untuk kasino Anda. Node mewakili objek bisnis Anda:

  • Permainan
  • Tabel
  • Karyawan
  • Keterampilan

Apa yang hebat tentang basis data grafik adalah Anda dapat melihat gambar ini dan memahami bahasa pertanyaan Anda secara semantik dengan melompat dari satu simpul ke simpul lain melalui hubungannya.

Berikut adalah kueri Cypher yang dapat Anda gunakan untuk mengajukan pertanyaan tentang model data. Anda dapat mengubahnya sedikit agar sesuai dengan pertanyaan Anda.

MATCH (employee:Employee)-[:HAS_SKILL]->(skill:Skill),
      (employee)<-[:DEALS]-(game:Game)-[:LOCATION]->(table:Table),
      (game)-[:BEGINS]->(hour:H)<-[*]-(day:D)<-[*]-(month:M)<-[*]-(year:Y)
WHERE skill.type = "Blackjack" AND 
      day.day = 17 AND 
      month.month = 1 AND 
      year.year = 2014
RETURN employee, skill, game, table

Kueri di atas menemukan sub-grafik untuk semua karyawan yang memiliki keterampilan Blackjack dan meja serta lokasi mereka pada tanggal tertentu (17/1/14).

Untuk melakukan ini dalam SQL akan sangat sulit. Hal berikutnya yang perlu Anda pikirkan adalah mengimpor data Anda ke dalam database Neo4j. Jika Anda penasaran bagaimana melakukannya, silakan lihat pertanyaan lain di SO dan jika Anda membutuhkan bantuan lebih lanjut, silakan kirim pertanyaan lain atau hubungi saya di Twitter @kennybastani.

Semangat,

Kenny




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mempercepat rumus Haversine di mysql?

  2. Penginstal MySQL menampilkan kesalahan:Memoy tidak dapat ditulis

  3. Bagaimana saya bisa menulis fungsi yang ditentukan pengguna di MySQL sehingga ketika saya menghapus baris dari satu tabel, baris tertentu dari tabel lain juga akan dihapus?

  4. Menyimpan karakter latin serbia dalam database

  5. Bagaimana cara menggunakan union sekali saja dengan perintah where?