Bir CMS için özel bir model alanlar

1 Cevap php

Ben Doktrini gibi bir ORM kullanarak benim modelleri haritalama çok düşkün ettik. Yaklaşan bir proje için, ben kullanıcı benim modellere özel alanlar eklemek için izin vermeniz gerekir. Bunu hakkında gitmek için en iyi yolu merak ediyorum?

Geçmişte bu gibi bir veritabanı tablosu 'özel alanlar' oluşturarak bu yaptım:

field_id->pk
field_model->ida
field_type->varchar
field_name->varchar
field_data->text
field_validation->varchar

Bu benim ana sorun verileri bir 'metin' alanında depolanır edilir ve verileri tek bir tamsayı olarak küçük olabilir ... bu durumda bir metin alanının tamamını kullanmak çok savurgan görünüyor!

1 Cevap

Ne hakkında bir şey gibi:

id int
model_id int
name varchar
value_type enum('boolean','integer','text','float')
num_value decimal
text_value varchar

Eğer value_type alan çeşit (bunu yapmak için enum Sadece tek yönlü) varsa, sizin modeli üyeleri içine sorguları dışarı değişkenleri çevirebilirsiniz. Artı, sıralama vb, SQL matematik yararlanabilirsiniz ..