PHP / MySQL: kullanıcı ve optimize edilmiş herhangi bir tanımsız opsiyoneller veri kaydetmek için en iyi yolu ne aramak gerekir?

2 Cevap php

Ben .. bazı sabit sütunlar id, başlık, yaratılmış olan bir tablo var, ama orada ben spesifik bir sütun tanımlamak olamaz kullanıcıdan bazı isteğe bağlı veri koymak gerekir, ama diğerleri kullanıcıların arama için bu verileri gerekir. Ne iyi yolu nedir?

  1. Tefrika dizi Mağaza
  2. Leave some column optionals ( exemple:leaves any 10 column opt1,opt2,opt3...)
  3. Create a new table (dataid,uid,key,value) and new rows for each data.

değer çifti: veri anahtar gibi olurdu

Ne kullanıcı herhangi bir tanımsız opsiyoneller verileri kaydetmek ve en iyi yolu aramak için optimize etmeniz gerekir?

Good Day

2 Cevap

Definitively 3). Storing a serialized array means being dependend on a language (php, json etc), and selecting via sql is impossible. 2) ist bad, because of several reasons; mainly, you are less flexible in extending and selecting. Create a meta table like 3), this is an established approach.

Güncelleme: 3) biraz geliştirilebilir gerekir: Böyle bir tablo oluşturun:

UID | anahtar | değer

değil:

UID | key_value

Eğer db içinde kolayca arama yapabilirsiniz ve kaç değerler kullanıcı başına dert olmaz çünkü 3 yaklaşım en iyisidir