در کشورهایی که برای مدتی طولانی نرخ های تورم بالا رو تجربه می کنند و سطح عمومی قیمت ها به نحو چشم گیری افزایش پیدا می کنه، قدرت خرید پول به شدت کم میشه و شرایطی به وجود میاد که پول ملی به سختی می تونه وظایف اش رو به عنوان وسیله مبادله، واحد شمارش و ذخیره ارزش ایفا کنه. در چنین شرایط برای جلوگیری از هزینه های ناشی از گردش پول کم ارزش در اقتصاد، دولت ها به تغییر واحد پول ملی اقدام می کنند. تغییری که جامعه نرم افزاری رو تحت تاثیر قرار خواهد داد.
طرح اصلاح پول ملی
بانک مرکزی از تیرماه ۱۳۹۰ وبسایتی رو با عنوان طرح اصلاح پول ملی راه اندازی کرده و فرم های نظرسنجی پیرامون ابعاد مختلف برنامه حذف صفر رو در اون گنجانده و طبق گزارش منتشر شده هم هزاران نفر در آن شرکت کردهاند. ولی به نظر میرسه به دلایلی از جمله تحریم های بینالمللی و سیاستهای متفاوت، پیشرفت نتیجه بخشی نداشته و سال های بعد، به روز رسانی در این وبسایت مشاهده نمیشه و وب سایت بیشتر جنبه اطلاع رسانی داشته است.
تورم انباشته چهار دهه اخیر اقتصاد کشور موجب کاهش قدرت خرید واحد پول شده و بر این اساس چیزی که مهم هست اینه که برای رفع مشکلات موجود، تغییر واحد پول کشور به عنوان راهکار نهایی مطرح هست و با وجود این که ایراداتی هم به برنامه حذف صفر از پول ملی مطرح شده، به نظر میرسه روز به روز با پیشرفت تورم، این تصمیم دیر یا زود عملی خواهد شد و واحد پول جدید دغدغه آتی نرمافزارهای ایران خواهد بود.
در این میان نکته مهمی که برنامهنویسان و توسعه دهندگان نرم افزار و وب بایستی توجه کنند اینه که قبل از شروع به توسعه نرم افزار یا وبسایت و از هم اکنون پارامترهایی رو پیش بینی و اعمال کنند تا از بروز مشکلات آتی در هسته داخلی اون ها پیشگیری بشه. اگه از همین الان به فکر اعمال راهکاری ساده برای واحد پول جدید احتمالی باشیم، هزینه های سرسام آور مالی و زمانی برای اعمال تغییرات آتی در سیستم و همچنین تبدیل دادههای ریالی فعلی به واحد جدید رو نخواهیم داشت و باعث صرفه جویی در مصرف انرژی کشور نیز خواهیم بود. از جمله کشورهایی که اخیر این مسیر رو طی کرده کشور ترکیه است که به یکباره شش صفر از پول ملی خود رو در سال ۲۰۰۵ میلادی حذف کرد.
راه حل پیشنهادی
اول
با توجه به اینکه مقادیر پولی در پایگاه داده ها بایستی دقیق و غیر تقریبی باشند، از نوع داده اعشاری مثل float
و مشابه
آن که اصطلاحا non-precise type
گفته می شوند و همچنین نوع داده int
یا bigint
که مسلما در واحد پولی جدید به دلیل
حذف صفر و تبدیل خرده به اعشار جوابگو نخواهند بود، پرهیز کنید و از اعداد اعشاری ممیز ثابت مثل decimal(15,2) datatype
در MySQL
و MSSQL
یا اینکه numeric(15,2) datatype
در MySQL
و موارد مشابه در انواع دیگه ای از پایگاه داده ها
استفاده کنید و در حال حاضر مقادیر رو با فرمت پیش فرض ریال و قسمت اعشاری صفر ذخیره کنید.
دوم
در تنظیمات نرم افزار، امکان انتخاب واحد پول رو اضافه کنید. ممکن هست کاربران، حتی سال ها بعد از اعمال واحد پول جدید، باز هم برای مدتی بر حسب عادت تمایل به استفاده از واحد قدیمی داشته باشند و حتی در حال حاضر، از این طریق امکان نمایش تومان یا ریال رو به دلخواه کاربر فراهم می کنید.
سوم
به جای واکشی مستقیم اعداد از پایگاه داده و نمایش اون ها در قسمت های مختلف، متد یا تابع واحدی رو بر اساس ساختار خود و نوع واحد انتخابی کاربر برنامه نویسی کنید و هر جا لازم بود فراخوانی کنید. این متد بایستی امکان تبدیل نوع واحد پولی پیش فرض ذخیره شده در پایگاه داده به واحد انتخابی کاربر رو داشته باشه. این کار تسریع تغییرات یا اشتباهات احتمالی در کل سیستم رو هم به آسانی ممکنه می کنه و دیگه نیازی به جستجوی کل سورس و جایگزینی مقادیر نمی شه.
چهارم
فیلدهای با مقادیر پولی رو مشخص و بارز یادداشت کنید و در دسترس داشته باشید.
پنجم
از همین حالا روالی رو در نرم افزار در نظر بگیرید که امکان تبدیل داده های با واحد پول قدیمی به نوع جدید رو از طریق به روز رسانی فیلدها در جداول پایگاه داده انجام بده. در نتیجه بعدها در زمان تغییر واحد پولی و با اجرای ساده این روال، پیش فرض ذخیره سازی خود رو در پایگاه داده به واحد پولی جدید تغییر میدید.
ممکنه که راه حل های بهتری هم وجود داشته باشه. ولی در هر حال امیدوارم با یاری و هم فکری دوستان توسعه دهنده، از همین الان به فکر حذف دردسر تغییرات واحد پول کشور در نرم افزارها باشیم.