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

Menjelajahi pemodelan data (cara menyusun database yang masuk akal bersama-sama)

Terkejut sebagian besar jawaban tampaknya telah melewatkan pertanyaan, tetapi saya akan mencobanya;

Ini disebut pemodelan data (bagaimana Anda menyusun sekelompok tabel dalam database bersama-sama untuk mengekspresikan apa yang Anda inginkan dengan cara terbaik), dan jangan merasa konyol untuk bertanya; ada orang-orang di luar sana yang menghabiskan seluruh waktunya untuk mengutak-atik dan mendesain model data. Mereka sangat penting untuk kesejahteraan sistem apa pun, dan mereka, sebenarnya, jauh lebih penting daripada yang dipuji kebanyakan orang.

Sepertinya Anda berada di jalan yang benar. Itu selalu merupakan tip yang baik untuk mendefinisikan entitas Anda, dan membuat tabel untuk setiap entitas, jadi dalam hal ini Anda memiliki pengguna dan daftar putar dan lagu (misalnya). Tentukan tabel Anda demikian; PENGGUNA, LAGU, DAFTAR PUTAR.

Hal berikutnya adalah mendefinisikan nama bidang dan tabel (dan mungkin nama sederhana yang disarankan di atas, yah, sederhana). Beberapa memperkenalkan ruang nama palsu (mis. MYAPP_USER bukan hanya USER), terutama jika mereka tahu model data akan diperluas dan diperluas dalam database yang sama di masa mendatang (atau, beberapa karena mereka tahu ini tidak dapat dihindari), sementara yang lain hanya akan menerobos apa pun yang mereka butuhkan.

Pertanyaan besarnya akan selalu tentang normalisasi dan berbagai masalah di sekitar itu, menyeimbangkan kinerja dengan penerapan, dan ada banyak sekali buku yang ditulis tentang hal ini, jadi tidak ada cara bagi saya untuk memberikan jawaban yang berarti, tetapi intinya bagi saya adalah;

Pada titik apa bidang data dalam tabel layak untuk tabelnya sendiri? Contohnya adalah Anda dapat membuat aplikasi hanya dengan satu tabel, atau dua, atau 6 tergantung pada cara Anda ingin membagi data. Di sinilah saya pikir pertanyaan Anda benar-benar masuk.

Saya akan mengatakan Anda cukup benar dalam asumsi Anda, hal yang perlu diingat adalah konvensi penamaan yang konsisten (dan ada banyak pendapat tentang cara memberi nama pengidentifikasi). Untuk aplikasi Anda (dengan tabel yang disebutkan di atas), saya akan melakukannya;

USER { id, username, password, name, coffee_preference } 
SONG { id, artist, album, title, genre } 
PLAYLIST { id, userid } 
PLAYLIST_ITEM { id, songid, playlistid, songorder }

Sekarang Anda dapat menggunakan SQL Anda mendapatkan semua daftar putar untuk pengguna;

   SELECT * FROM PLAYLIST WHERE userid=$userid

Atau dapatkan semua lagu dalam daftar putar;

   SELECT * FROM SONG,PLAYLIST_ITEM WHERE playlist_item.playlistid=$playlist.id AND song.id=playlist_item.songid ORDER BY playlist_item.songorder

Dan seterusnya. Sekali lagi, buku-buku tebal telah ditulis tentang subjek ini. Ini semua tentang berpikir jernih dan semantik sambil menuliskan solusi teknis untuk itu. Dan beberapa orang hanya memiliki ini sebagai karier (seperti DBA). Akan ada banyak pendapat, terutama tentang apa yang saya tulis di sini. Semoga berhasil.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konfigurasi Ketersediaan Tinggi untuk Node ClusterControl Menggunakan CMON HA

  2. SELECT INTO OUTFILE tidak dapat menulis ke file

  3. Alasan MySQL Fulltext Stopwords

  4. Akses MySQL jarak jauh

  5. Membangun aplikasi Android untuk menjalankan PHP dan MySQL di Tablet Android