Rumah > Artikel > pangkalan data > Bagaimana untuk membangunkan fungsi cadangan muzik mudah menggunakan MySQL dan Ruby on Rails
Cara menggunakan MySQL dan Ruby on Rails untuk membangunkan fungsi cadangan muzik yang ringkas, contoh kod khusus diperlukan
Dengan pengembangan berterusan pasaran muzik dan kepelbagaian muzik yang semakin meningkat, adalah sukar bagi pengguna untuk mencari muzik yang menepati citarasa mereka. Oleh itu, adalah sangat perlu untuk membangunkan fungsi cadangan muzik. Artikel ini akan menggunakan pangkalan data MySQL dan rangka kerja Ruby on Rails sebagai asas untuk memperkenalkan cara membangunkan fungsi cadangan muzik mudah dan menyediakan contoh kod khusus.
Langkah Pertama: Cipta Pangkalan Data
Pertama, kita perlu mencipta pangkalan data MySQL untuk menyimpan data muzik dan pilihan pengguna. Berikut ialah contoh fail migrasi Rails untuk membuat jadual pangkalan data:
class CreateSongs < ActiveRecord::Migration[6.0] def change create_table :songs do |t| t.string :title t.string :artist t.string :genre end end end class CreateUserPreferences < ActiveRecord::Migration[6.0] def change create_table :user_preferences do |t| t.references :user t.references :song t.integer :rating end end end
Kod di atas mencipta dua jadual: lagu
digunakan untuk menyimpan maklumat muzik, termasuk title
( Tajuk lagu ), artis
(artis) dan genre
(genre muzik); user_preferences
digunakan untuk menyimpan rating pengguna untuk setiap lagu. songs
用于存储音乐信息,包括title
(歌曲标题)、artist
(艺术家)和genre
(音乐类型);user_preferences
用于存储用户对每首歌曲的评分。
第二步:模型关系和数据填充
在Rails中,我们需要定义模型之间的关系。以下是示例的模型代码:
class Song < ApplicationRecord has_many :user_preferences has_many :users, through: :user_preferences end class User < ApplicationRecord has_many :user_preferences has_many :songs, through: :user_preferences end class UserPreference < ApplicationRecord belongs_to :user belongs_to :song end
以上代码定义了Song
、User
和 UserPreference
之间的关系。Song
和 User
之间是多对多关系,通过 UserPreference
来建立联系。
接下来,我们需要填充一些样本数据进入数据库。以下是一个示例的填充代码:
Song.create(title: 'Song 1', artist: 'Artist 1', genre: 'Pop') Song.create(title: 'Song 2', artist: 'Artist 2', genre: 'Rock') Song.create(title: 'Song 3', artist: 'Artist 3', genre: 'Jazz') User.create(name: 'User 1') User.create(name: 'User 2') User.create(name: 'User 3') UserPreference.create(user_id: 1, song_id: 1, rating: 4) UserPreference.create(user_id: 1, song_id: 2, rating: 5) UserPreference.create(user_id: 2, song_id: 2, rating: 3) UserPreference.create(user_id: 3, song_id: 3, rating: 2)
以上代码创建了3首歌曲、3个用户和4个用户偏好示例(用户对歌曲的评分)。
第三步:实现音乐推荐算法
接下来,我们需要实现一个简单的音乐推荐算法。以下是一个示例的推荐算法:
class RecommendationController < ApplicationController def index user = User.find(params[:user_id]) rated_songs = user.songs similar_users = User.where.not(id: user.id).joins(:songs) .where('songs.id IN (?)', rated_songs.pluck(:id)).distinct recommended_songs = similar_users.joins(:songs).where.not('songs.id IN (?)', rated_songs.pluck(:id)) .group(:song_id).average(:rating) @recommendations = Song.where(id: recommended_songs.keys) .order(recommended_songs.values.map(&:to_f).reverse) end end
以上代码定义了一个RecommendationsController
控制器,其中index
方法根据用户的偏好(即对歌曲的评分)计算相似用户和推荐的歌曲,并将结果存储在 @recommendations
Dalam Rails, kita perlu menentukan hubungan antara model. Berikut ialah kod model untuk contoh:
<h1>Recommendations for User <%= @user.name %></h1> <% @recommendations.each do |song| %> <p><%= song.title %></p> <p>Artist: <%= song.artist %></p> <p>Genre: <%= song.genre %></p> <% end %>Kod di atas mentakrifkan hubungan antara
Lagu
, User
dan UserPreference
. Terdapat hubungan banyak-ke-banyak antara Lagu
dan User
, dan hubungan itu diwujudkan melalui UserPreference
. Seterusnya, kita perlu mengisi beberapa sampel data ke dalam pangkalan data. Berikut ialah kod mengisi untuk contoh: rrreee
Kod di atas mencipta 3 lagu, 3 pengguna dan 4 contoh pilihan pengguna (penilaian pengguna lagu).
RecommendationsController
, di mana kaedah index
mengira persamaan berdasarkan pilihan pengguna (iaitu, penilaian lagu ) pengguna dan lagu yang disyorkan, dan menyimpan hasilnya dalam pembolehubah @recommendations
. 🎜🎜Langkah 4: Buat paparan🎜Langkah terakhir ialah mencipta paparan untuk memaparkan lagu yang disyorkan. Berikut ialah contoh kod paparan mudah: 🎜rrreee🎜Kod di atas memaparkan senarai lagu yang disyorkan kepada pengguna. 🎜🎜Ringkasan: 🎜Artikel ini memperkenalkan langkah-langkah untuk membangunkan fungsi cadangan muzik ringkas menggunakan MySQL dan Ruby on Rails. Daripada mencipta pangkalan data dan mengisi data, kepada menentukan perhubungan model dan melaksanakan algoritma pengesyoran, kepada mencipta paparan untuk memaparkan hasil. Semoga contoh mudah ini akan membantu pembaca memahami cara membangunkan fungsi cadangan muzik menggunakan MySQL dan Ruby on Rails. 🎜Atas ialah kandungan terperinci Bagaimana untuk membangunkan fungsi cadangan muzik mudah menggunakan MySQL dan Ruby on Rails. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!