PHP / MySQL: En iyi para işlemleri / uygulamaları saklamak?

2 Cevap php

İlk önce İngilizce için tüm üzgünüm ki bu benim anadil değil.

Yani, para ile çok ilgilenen bir uygulama (PHP / MySQL) yapmak planlıyorum, ve ben PHP float veri türü ve MySQL ondalık atıfta saklamak ve para ile nasıl çalıştırılacağı hakkında düşünüyorum.

Ben iki seçenek düşünüyordum. Bunlardan biri şamandıra inprecisions ile başa çıkmak için ve de tamsayı olarak DB depolamak etmemek için tamsayı sent formatında ($ dolar * 100) para işletmek ve saklamaktır. Diğeri ondalık olarak DB depolamak ve hesaplamalar için PHP M.Ö. Matematik kullanmaktır.

So I googled all the night to find out which is the best option to use and didn't find a clear answer. The only reasonable option that I've seen was the integer cents one (which I don't really like because it would imply a lot of converting from dollars to cents and viceversa before every display in the browser and before storing in the DB).

Ayrıca, insanlar MySQL ondalık (dizeleri olarak MySQL mağazalar ondalık, yüzen vb gibi onları çalışır) hakkında şikayet var, ama eski mesajlar vardı. MySQL belgelerine göre, güncel sürümü tek şikayet ilan kesir uzunluğu aşıyor değerlerin kısmını keser oldu, doğru ondalık işler (örneğin bir sütun ilan ondalık (9,2) içinde 12,326 değerini depolamak ise) , ama benim incelemelerden yerine sadece benim görüşüme göre doğru olan (12.326 12.33 olur) kesiliyor bunu yuvarlar.

Ve, ben ondalık olarak para saklamak ile ilgili herhangi bir öneri bulmak ve PHP BCMath kullanarak hesaplama yapmak ve birkaç kişi M.Ö. ve GMP matematik işlevleri hakkında bilmek çünkü bence bu değil.

Peki, hassasiyet dikkate kullanmak için en iyi seçenek, hız (BCMath hesaplamalar hız, tamsayı vs MySQL ondalık hız) ve programlama konfor olurdu?

I would appreciate any answer ;)
John

2 Cevap

Ben kesinlikle İnts kullanarak ve daha sonra sizin için tüm dönüşüm kolları bir veri nesnesi (ORM) tarzı ile her şeyi yönlendirme için gitmek istiyorum. Ints DB tarafından kolayca işlenir gibi depolama ile sorun olmaz ise veri nesnesini kullanarak müşteri kodu, dönüşüm yapmak ve umurumda olmaz gerek asla. Ayrıca, daha sonra diğer yöntemler oldukça kolay (para türleri, vb arasında dönüştürme gibi) para nesne için gerekli her türlü ekleyebilirsiniz.

Ben de sorun BCMath hakkında bilgi bulma vardı, bu yüzden araştırdım ve bu konuda benim kendi yazı yazdı: http://www.exploringbinary.com/base-conversion-in-php-using-bcmath/.

(Ben BCMath kullanmanız gereken tutum alma değilim - Ben sadece size bilgi veriyorum.)