MySQL veritabanı çok büyük tablo

0 Cevap php

Benim veritabanında bir online oyun ve bir tablo yapıyorum. Belki de en önemlisi. Bu çok büyük olmaya başlıyor. Eğer birden fazla kullanıcı ile birlikte gidebilirsiniz ve bunun için şimdiye kadar bu gibi bakmak bir tablo var nerede bir işlevi oluşturma:

CREATE TABLE `oc` (
  `id` int(11) NOT NULL auto_increment,
  `leader` varchar(40) NOT NULL default '',

  `car` int(11) NOT NULL default '0',
  `car_type` char(2) NOT NULL default '',  

  `seats` varchar(3) NOT NULL default '0',
  `share` enum('1','2') NOT NULL default '1',
  `location` varchar(100) NOT NULL default '',  

  `user1` varchar(40) NOT NULL default '', 
  `user2` varchar(40) NOT NULL default '',  
  `user3` varchar(40) NOT NULL default '', 
  `user4` varchar(40) NOT NULL default '', 
  `user5` varchar(40) NOT NULL default '',  
  `user6` varchar(40) NOT NULL default '', 
  `user7` varchar(40) NOT NULL default '', 
  `user8` varchar(40) NOT NULL default '', 
  `user9` varchar(40) NOT NULL default '', 

  `leader_gun` char(2) NOT NULL default '', 
  `user1_gun` char(2) NOT NULL default '', 
  `user2_gun` char(2) NOT NULL default '',  
  `user3_gun` char(2) NOT NULL default '', 
  `user4_gun` char(2) NOT NULL default '', 
  `user5_gun` char(2) NOT NULL default '',  
  `user6_gun` char(2) NOT NULL default '',  
  `user7_gun` char(2) NOT NULL default '', 
  `user8_gun` char(2) NOT NULL default '', 
  `user9_gun` char(2) NOT NULL default '',   

  `user1_inv` varchar(40) NOT NULL default '', 
  `user2_inv` varchar(40) NOT NULL default '',  
  `user3_inv` varchar(40) NOT NULL default '', 
  `user4_inv` varchar(40) NOT NULL default '', 
  `user5_inv` varchar(40) NOT NULL default '',  
  `user6_inv` varchar(40) NOT NULL default '',  
  `user7_inv` varchar(40) NOT NULL default '', 
  `user8_inv` varchar(40) NOT NULL default '', 
  `user9_inv` varchar(40) NOT NULL default '',    

  `user1_ready` enum('0','1') NOT NULL default '1', 
  `user2_ready` enum('0','1') NOT NULL default '1',  
  `user3_ready` enum('0','1') NOT NULL default '1', 
  `user4_ready` enum('0','1') NOT NULL default '1',  
  `user5_ready` enum('0','1') NOT NULL default '1', 
  `user6_ready` enum('0','1') NOT NULL default '1',  
  `user7_ready` enum('0','1') NOT NULL default '1', 
  `user8_ready` enum('0','1') NOT NULL default '1',   
  `user9_ready` enum('0','1') NOT NULL default '1',     

  PRIMARY KEY  (`id`)
) TYPE=MyISAM ;

Şimdi benim sınırlamalar merak ediyorum. Bu arada oynayabilir kadar 30 kullanıcımız var serin olurdu, ama sonra benim masa 3 kat gibi birçok alanda gerekir. 30 x {[(0)] 30} x user1_inv ve 30 x user1_ready.

Hepsi diğer kullanıcı adı ve bu listeye sayfasına erişmek tüm kullanıcıların db tüm bilgilere ihtiyacınız olacaktır çünkü bu db yoğun kullanılacaktır. Tüm kullanıcılar, aynı zamanda tabloda en az 3 değerlerini değiştirebilirsiniz.

Ben 9 kullanıcılara masamı sınırlamak gerekir yoksa ben 100 kullanıcıları için bir tablo yapabilirsiniz? Hiçbir fikrim yok. Bazı kodlama, ama şimdi önce büyük mysql veritabanları ve sunucular başardı asla olabilir.

EDIT: Tamam. Sadece temiz olması için. Ben kullanıcıların bilgi, kullanıcı tablosuna bağlı otomobiller için bir tablo, benim kullanıcı tabloya bağlı silahlar için bir tablo ile her türlü kullanıcı tablo var. This is not my only table with where a maximum of 9 players can play the game! oc tablo ben Veritabanı normalizasyon ihtiyacım olduğunu sanmıyorum .. her kullanıcı seçilir ve onlar hazır olduğunu işaret var kullanıcı var kullanıcı adı ve silahlar için alanlar olması gerekir ...

0 Cevap