পদার্থের তালিকার জন্য পরিমাপের সর্বাধিক উপযুক্ত ইউনিট গণনা করতে দেখছি যেখানে পদার্থগুলি পৃথক (তবে সামঞ্জস্যপূর্ণ) ইউনিট খণ্ডে দেওয়া হয়।
ইউনিট রূপান্তর সারণী
ইউনিট রূপান্তর টেবিলটি বিভিন্ন ইউনিট সংরক্ষণ করে এবং কীভাবে সেই ইউনিটগুলি সম্পর্কিত:
id unit coefficient parent_id
36 "microlitre" 0.0000000010000000000000000 37
37 "millilitre" 0.0000010000000000000000000 5
5 "centilitre" 0.0000100000000000000000000 18
18 "decilitre" 0.0001000000000000000000000 34
34 "litre" 0.0010000000000000000000000 19
19 "dekalitre" 0.0100000000000000000000000 29
29 "hectolitre" 0.1000000000000000000000000 33
33 "kilolitre" 1.0000000000000000000000000 35
35 "megalitre" 1000.0000000000000000000000 0
গুণফল দ্বারা বাছাই করা দেখায় যে parent_id
চাইল্ড ইউনিটটিকে তার সংখ্যার চেয়ে আরও ভাল সংযুক্ত করে।
এই টেবিলটি পোস্টগ্রেএসকিউএল ব্যবহার করে তৈরি করা যেতে পারে:
CREATE TABLE unit_conversion (
id serial NOT NULL, -- Primary key.
unit text NOT NULL, -- Unit of measurement name.
coefficient numeric(30,25) NOT NULL DEFAULT 0, -- Conversion value.
parent_id integer NOT NULL DEFAULT 0, -- Relates units in order of increasing measurement volume.
CONSTRAINT pk_unit_conversion PRIMARY KEY (id)
)
এখানে থেকে একটি বিদেশী কী থাকা parent_id
উচিত id
।
পদার্থ সারণী
সাবস্ট্যান্স সারণীতে পদার্থের নির্দিষ্ট পরিমাণের তালিকা রয়েছে। উদাহরণ স্বরূপ:
id unit label quantity
1 "microlitre" mercury 5
2 "millilitre" water 500
3 "centilitre" water 2
4 "microlitre" mercury 10
5 "millilitre" water 600
টেবিল সাদৃশ্য হতে পারে:
CREATE TABLE substance (
id bigserial NOT NULL, -- Uniquely identifies this row.
unit text NOT NULL, -- Foreign key to unit conversion.
label text NOT NULL, -- Name of the substance.
quantity numeric( 10, 4 ) NOT NULL, -- Amount of the substance.
CONSTRAINT pk_substance PRIMARY KEY (id)
)
সমস্যা
আপনি কীভাবে এমন একটি ক্যোয়ারী তৈরি করবেন যা পুরো সংখ্যার (এবং allyচ্ছিকভাবে বাস্তব উপাদান) কয়েকটি সংখ্যক অঙ্ক ব্যবহার করে পদার্থের যোগফলের প্রতিনিধিত্ব করতে একটি পরিমাপ খুঁজে পায়?
উদাহরণস্বরূপ, আপনি কীভাবে ফিরে আসবেন:
quantity unit label
15 microlitre mercury
112 centilitre water
কিন্তু না:
quantity unit label
15 microlitre mercury
1.12 litre water
কারণ 112 এর তুলনায় 1.12 এর চেয়ে কম কম সংখ্যক রয়েছে এবং 112 1120 এর চেয়ে ছোট Yet তবুও কিছু পরিস্থিতিতে আসল অঙ্কগুলি ব্যবহার করা সংক্ষিপ্ত - যেমন ১.১ লিটার বনাম ১১০ সেন্টিমিটার।
বেশিরভাগ ক্ষেত্রে, পুনরাবৃত্তির সম্পর্কের ভিত্তিতে সঠিক ইউনিট বাছাই করতে আমার সমস্যা হচ্ছে।
সোর্স কোড
এখন পর্যন্ত আমার কাছে (স্পষ্টত অ-কর্মহীন) রয়েছে:
-- Normalize the quantities
select
sum( coefficient * quantity ) AS kilolitres
from
unit_conversion uc,
substance s
where
uc.unit = s.unit
group by
s.label
ধারনা
অঙ্কের সংখ্যা নির্ধারণ করতে এর জন্য লগ 10 ব্যবহার করা দরকার ?
সীমাবদ্ধতাসমূহ
ইউনিট দশটি ক্ষমতায় নেই। উদাহরণস্বরূপ: http://unitsofmeasure.org/ucum-es উপস্থিত.xml