Şarkılar MySQL DB için veri deposu

1 Cevap php

Ben bir MySQL veritabanı şarkıları büyük bir dizi depolamak ediyorum. Bu benim 'şarkılar' tablo içinde saklamak budur:

CREATE TABLE `songs` (
  `song_id` int(10) unsigned NOT NULL auto_increment,
  `song_artist` varchar(255) NOT NULL,
  `song_track` varchar(255) NOT NULL,
  `song_mix` varchar(255) NOT NULL,
  `song_title` text NOT NULL,
  `song_hash` varchar(40) NOT NULL,
  `song_addtime` int(10) unsigned NOT NULL,
  `song_source` text NOT NULL,
  `song_file` varchar(255) NOT NULL,
  PRIMARY KEY  (`song_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1857 DEFAULT CHARSET=latin1

Şimdi her şarkı var kaç çalış takip ve şarkı ilgilidir diğer şarkı özgü veri tutmak istiyorum. Bunun için 'şarkılar' masaya alanları eklemeye devam etmek istemiyorum. Nasıl şarkı ilgili verilerin daha verimli bir şekilde saklayabilirsiniz? Burada en iyi uygulama nedir?

1 Cevap

Bir 1'e 1 ilişki buysa, şarkıları tabloya eklemek gerekir. Ilişki bunun için çağırdığında tabloya daha fazla alan ekleyerek yanlış bir şey yok. Sonra her oyunda alanını artırmak için SQL kullanabilirsiniz.

Diyelim ki, belirli bir kullanıcı şarkıyı oynadı kaç kez takip etmek istiyorsanız, eğer başka bir yaklaşım kullanılabilir. Sen song_id, user_id, plays alanlar olarak (song_id ve User_id bir bileşik anahtar oluşturacak) olan bir ilişki tablo oluşturabilirsiniz.

Derken ne demek istediğine bağlı

song-spesifik veri

şema nasıl değiştirilmesi gerektiğine belirleyecektir.