kullanıcı üretilen / kullanıcı özel fonksiyonlar

1 Cevap php

Ben aşağıdakileri yapmak için en şık ve güvenli bir yöntem arıyorum.

Ben bir takvim var ve kullanıcı grupları.

Kullanıcılar, takvim üzerinde belirli günlerinde etkinlikler eklemek ve her olay için ne kadar sürer uzun belirleyebilirsiniz.

Onları belirli bir uzunlukta olayları belli bir miktar, bir mola dahil, ya da zaman belli bir miktar olaylar arasında bırakılması gerektiren tanımlamak için yeteneği eklemek için kullanıcıların birkaç istekleri yaşadım.

Etkinlik> 2 saat, örneğin, bir 20 ara bulunmaktadır. her olay için, 30 dakika sonraki olayın başlamasından önce gerektirir.

20 dakika mola dahil etmek> 2 saatlik bir olay için istedi Aynı grup, ayrıca bir olay> 3 saat 30 dakikalık bir mola içerdiğini gerektirebilir.

Sonunda, ne kullanıcıların almak için çalışıyoruz onlar için hesaplanan molaları hariç bir geçen zaman. Şu anda onlara bir toplam geçen zaman vermek, ancak bir süre çalışan arıyoruz.

Ancak, bu istekleri her biri, her bir grup için farklıdır. Bir grup 2 saatlik bir olay sırasında bir 30 dakika mola isteyebilir, ve başka her 3 saat olay için sadece 10 dakika istiyorum nerede.

Ben biraz ben, grup başına bir php dosyasına fonksiyonları yazmak ve sonra bu dosyayı içerir ve php üzerinden hesaplamalar yapmak ve sonra kullanıcıya bir hesaplanan toplam iade düşünüyordum, ama bu konuda bir şey bana doğru görmüyor.

Başka bir seçenek çıktı javascript gruplar fonksiyonları, ve ben zaten olayın süresini iade ediyorum gibi, istemci tarafında çalışacak, ancak kullanıcı farklı kurallara sahip birden fazla grubun bir parçası olduğu, bu böyle görünüyor oldukça dağınık alabilir.

Bir grup kendi hesaplamaları değiştirmeye karar verirse, ben gerekir çünkü ben şu anda, veritabanında başlangıç ​​ve bitiş zamanı saklamak, ama hayır 'süreleri', ve ben db hesaplanan toplamları saklanması gerektiğini sanmıyorum db boyunca bunu değiştirin.

Is there a better way of doing this? I would just store the variables in mysql, but I don't see how I can then say to mysql to calculate based on those variables.

Ben gerçekten burada kayboldum. Herhangi bir öneriniz? Birinin benzer bir şey yapmış ve iyi yönde bazı bilgiler sağlayabilir umuyorum.

Bu yardımcı olur, benim tablo içerir

eventid, user, group, startDate, startTime, endDate, endTime, type

Ben kullanıcıya dönmek olay için json olduğunu

{"eventid":"'.$eventId.'", "user":"'.$userId.'","group":"'.$groupId.'","type":"'.$type.'","startDate":".$startDate.'","startTime":"'.$startTime.'","endDate":"'.$endDate.'","endTime":"'.$endTime.'","durationLength":"'.$duration.'", "durationHrs":"'.$durationHrs.'"}

Örneğin, süresinin uzunluğu 2.5 ve süresi saat 02:30 olduğu.

1 Cevap

Başlangıç ​​zamanı ve etkinlik için bitiş zamanı ve adında bir BLOB alan sadece Mağaza notes.

Ben kod ve veri modelleme istisna durumlarda bir unmaintainable koleksiyonu şey olana kadar gereksinimleri bu tür özelliği sürünme muzdarip birçok sistemleri üzerinde çalıştık. Bu kod yeni permütasyonlarını eklemek için bir sürü iş vardı, ve genellikle bu durumlarda sadece bir kez kullanılmıştır.

Eğer notları alanında açıklanan kural ve koşulların uygulanmasını gerekiyorsa, bu aslında daha fazla maliyet-etkin bir yazılım yerine her şeyi otomatikleştirmek çalışırken bir olay koordinatörü kiralamak. Bir detay odaklı insan bunları işlemek için kod uyum sağlayabilen çok daha hızlı istisna durumlarda uyum sağlayabilir.