Nedir bir CMS özel alanları değişken sayıda uygulamak için iyi bir yoldur?

2 Cevap php

Çalıştığım yerde kullanılan uygulama tabloda yaklaşık 10 sütunları kullanır: CUSTOMFIELD1, CUSTOMFIELD2 vs Ve ben bakmak her zaman, ben daha iyi bir yolu olmalı bence.

Herkes her 10 kullanacağız, bazı 0 kullanacak ve böylece orada bu boş sütunlar sadece kullanılmak için yalvarıyor, bana geri bakıyordu.

Daha iyi bir yolu olup olmadığını Yani ... ideal, ben buna izin sandın:

  1. More than 10 custom fields. Theoretically, infinite. Practically, something sane like 15.
  2. Each custom field could be given a name, set by the user.
  3. The custom fields type could be set. Basic types like: string and number.

Şimdiye kadar, ben özel alanları 'açıklamaları, isimleri, ben bir geri dönüştürebilir, XML, JSON veya YAML gibi bir formatta türleri, vb içeren bir dosyanın yolunu saklayacak custom_fields adında bir sütun, sahip düşünüyorum nesnesi. Ve ben bu özel alanları kullanan içeriği kaydetmek nasıl bütün meselesi var, sadece özel alanın tanımı var ...

Her neyse, benim düşüncelerim artık sadece nerede. Herhangi bir fikir?

PS --- Ben bir kullanıcı uygun uygulamayı özelleştirerek özel alanlara şeyler tokat daha ideal olacağını zihin değilim, ama o lükse sahip & yok fazladan 2 özel alanları tanımlayan diğer zamanlarda sadece çalışır.

2 Cevap

: Sütunlu CustomerFields - ayrı bir tablo oluşturun

  • customer_id (int),
  • alan (varchar),
  • değer (varchar),
  • veri türü (varchar)

Istediğiniz gibi şimdi CustomerFields tabloda customer_id = 'CustomerID'deki' ile tüm girdileri bularak gibi birçok değişkeni atayabilirsiniz. Tek şey, değer gerçek bir varchar değil, bir tamsayı olabilir ve çözümlenen gerektiğidir. Ama bu şema nasıl basit hesaba alarak bu büyük bir sorun olmadığını düşünüyorum

Herkes her 10 kullanacağız, bazı 0 kullanacak ve böylece orada bu boş sütunlar sadece kullanılmak için yalvarıyor, bana geri bakıyordu.

Bu görünüm veritabanı tablosunun sadece keyfi bir görünümüdür Çünkü uzak tarafına gidin ve "bu büyük olduğunu insana" düşünmek zorunda çünkü biri hızlı ipucu, veritabanları ya da normalize denormalize yok.