İyi DB php + Zend ile ölçü birimleri için şema?

0 Cevap php

Ben ölçüm verilerinin bir çok mağaza bir web uygulaması üzerinde çalışıyorum.

Bu önlemler sıcaklık, akış, ağırlık, konsantrasyon gibi farklı türleri vardır ...

Ben şu anda measurement units manager uygulamanın kullanıcıların her bir tedbir için istediğiniz birim seçmesine izin uygulamak çalışıyorum.

Veri birden fazla tablo şöyledir:

Tablo1: weightMeasure1 lengthMeasure1 TemperatureMeasure1

Tablo2: weightMeasure2 lengthMeasure2 FlowMeasure2

Tablo3: flowMeasure3

Kullanıcıların bağımsız her bir tedbir için istediğiniz birimi seçmek mümkün olacak. Yani bir metric/imperial seçim olmayacaktır.

Tüm veriler veritabanında orada SI or SI derived ünitesine kaydedilir. Benim uygulama için PHP kullanıyorum çünkü ben kullanmaya karar verdim Zend_Measure to handle the conversion (after asking this question).


How to define the unit of each measures in my database?

How to manage the user unit preferences?


This is the best solution that I have so far :

Ben bir property tablo yaratacaktır:

özellik: property_id adı sütunu birimi

  • property_id benzersiz bir artırılır sayıdır (PK)
  • name Bir insan okunabilir isim (isteğe bağlı)
  • column tablo adı bir birleştirme ve sütun adı (Benzersiz sınırlama) olduğunu. Örneğin,: table2_lengthMeasure2
  • unit veritabanında mülkiyet birimini tanımlayan Zend sabit bir dizedir. Örneğin: SQUARE_METER, KILOGRAM_PER_HOUR, ... Zend Framework API mevcuttur daha fazla ayrıntı.

Ben kullanıcı tercihlerini yönetmek için user_property_unit tablo yaratacaktır:

user_property_unit: User_id property_id ünitesi

  • unit o kullanıcı için UI ekran olacak zaman mülkiyet birimini tanımlayan Zend sabit bir dizedir. Örneğin, bu olabilir SQUARE_METER property masa ve SQUARE_FOOT user_property_unit birim sütununda birim sütununda

Ben bu çözüm ile görmek sorunlar şunlardır:

  • Bir concat kullanarak table name + column name bana doğru değil gibi görünüyor ...
  • Benim sütunlardan birinin adını değiştirirseniz o property tabloya yansımaz.

Lütfen Yardım için teşekkürler!


UPDATE Is there any one why can help me even with some tips?

0 Cevap