- Düzenlendi
Merhabalar, bir e-ticaret ürünü için sql veri tabanında aşağıdaki verilerin hepsini tek tabloda tutmanın mantıklı olduğunu söylemişlerdi eski mesajlarımda. 10.000'den fazla ürünü olan eticaret sitesi için yine mantılı mı? Performans açısından bir sorun olur mu?
Birde varchar 255 yerine 150 kullanmak daha az gereken yerde 50 kullanmak performans için birşeyleri değiştirebilir mi?
Bunun gibi örnek integer (11) yerine " girilen değer sadece : 0 - 1 " olan yerde integer 1 (boolean) mantıklı olur mu? Yada böyle birşeyi düşünmeye gerek varmıdır?
İyi çalışmalar dilerim
Kodlarım ;
Schema::create('urun', function (Blueprint $table) {
$table->charset = 'utf8mb4';
$table->collation = 'utf8mb4_general_ci';
$table->bigIncrements('id');
$table->unsignedBigInteger('tedarikci_id')->nullable();
$table->unsignedBigInteger('marka_id')->nullable();
$table->unsignedBigInteger('stokbirimi_id')->nullable();
$table->unsignedBigInteger('model_id')->nullable();
$table->string('urun_adi',130);
$table->string('urun_kodu',40)->nullable();
$table->string('barkod',40)->nullable();
$table->string('ws_urun_kodu',30)->nullable();
$table->string('depo_no',30)->nullable();
$table->decimal('fiyat_1', 20, 2)->nullable();
$table->decimal('fiyat_2', 20, 2)->nullable();
$table->decimal('fiyat_2_1', 20, 2)->nullable();
$table->decimal('fiyat_2_2', 20, 2)->nullable();
$table->integer('stok')->nullable();
$table->string('arama_kelimeleri',150)->nullable();
$table->integer('min_siparis_miktari_1')->nullable();
$table->integer('max_siparis_miktari_1')->nullable();
$table->integer('min_siparis_miktari_2')->nullable();
$table->integer('max_siparis_miktari_2')->nullable();
$table->integer('en')->nullable();
$table->integer('boy')->nullable();
$table->integer('yukseklik')->nullable();
$table->integer('agirlik')->nullable();
$table->integer('desi')->nullable();
$table->integer('kazanilan_puan')->nullable();
$table->tinyInteger('kdv')->nullable();
$table->smallInteger('teslimat_suresi')->nullable();
$table->string('kisa_aciklama',200)->nullable();
$table->text('aciklama')->nullable();
$table->string('ek_alan_1',150)->nullable();
$table->string('ek_alan_2',150)->nullable();
$table->string('ek_alan_3',150)->nullable();
$table->string('url');
$table->string('resim_1',150)->nullable();
$table->string('resim_2',150)->nullable();
$table->string('resim_3',150)->nullable();
$table->string('resim_4',150)->nullable();
$table->string('resim_5',150)->nullable();
$table->string('resim_6',150)->nullable();
$table->string('resim_7',150)->nullable();
$table->string('resim_8',150)->nullable();
$table->string('video',150)->nullable();
$table->string('seo_baslik')->nullable();
$table->string('seo_aciklama')->nullable();
$table->string('seo_kelime')->nullable();
$table->boolean('durum')->default(1);
$table->boolean('durum_alan1')->default(0);
$table->boolean('durum_alan2')->default(0);
$table->boolean('durum_alan3')->default(0);
$table->boolean('durum_yeni')->default(0);
$table->boolean('durum_kargo_ucretsiz')->default(0);
$table->boolean('durum_kapida_odeme_ucretsiz')->default(0);
$table->boolean('durum_kdv_dahil_goster')->default(1);
$table->boolean('durum_siparis_notu')->default(0);
$table->boolean('durum_yorum')->default(1);
$table->boolean('durum_simge1')->default(0);
$table->boolean('durum_simge2')->default(0);
$table->boolean('durum_simge3')->default(0);
$table->boolean('durum_simge4')->default(0);
$table->boolean('durum_simge5')->default(0);
$table->integer('siralama')->default(1);
$table->timestamps();
$table->foreign('tedarikci_id')->references('id')->on('urun_tedarikci');
$table->foreign('marka_id')->references('id')->on('urun_marka');
$table->foreign('stokbirimi_id')->references('id')->on('urun_stokbirimi');
$table->foreign('model_id')->references('id')->on('urun_model');
});