2009-11-30 9 views
5

मुझे डेटाबेस (एसक्यूएल सर्वर) में वैज्ञानिक जानकारी स्टोर करने की आवश्यकता है। एक डेटाबेस में एक मूल्य के स्टोर करने के लिए सबसे अच्छा तरीका क्या है, जहां, की तुलना में "बड़ा जानकारी का हिस्सा है" की तुलना में छोटे "डाटाबेस में "छोटे से", बराबर और "बड़े से" स्टोर करने के लिए कैसे करें

उदाहरण:।

PatientId: 123 उत्परिवर्तन दर: < 3%

PatientId: 999 उत्परिवर्तन दर: 3%

PatientId: 456 उत्परिवर्तन दर: 10%

मैं सॉर्ट और Dat फिल्टर करने के लिए सक्षम होना चाहिए ए। < की एक उत्परिवर्तन दर 3% से बेहतर है

मैं इसे कैसे हटा सकता हूं?

आपकी मदद के लिए धन्यवाद

+2

"4.61%" की उत्परिवर्तन दर "<4.7%" से बेहतर है? –

+0

रैंकिंग में बदलावों को समायोजित करने के लिए, आप उत्परिवर्तन दर की गणना करने के लिए उपयोग की जाने वाली चीज़ों को संग्रहीत करेंगे। –

+0

<4.7% का उपयोग किया जाता है क्योंकि " " आपके द्वारा दिए गए नमूने में आपको 4.6 9 1 मापने के लिए मापने की सटीकता के बाद <4.7% का उपयोग किया जाता है, लेकिन यह < 4.7% यदि यह सबसे कम मूल्य मापने योग्य है, लेकिन 0 भी एक मान है। – cafenervosa

उत्तर

9

कैसे एक स्पष्ट पूर्णांक के लिए एक 3 स्तंभ जोड़ने के बारे में?

0 = कम से कम
1 = बराबर या उससे
2 के लिए कम = बराबर करने के लिए
3 = से अधिक या बराबर
4 = से अधिक

+0

यदि आप ऐसा करना चाहते थे लेकिन इसे 0 = कम से कम, 1 = उससे कम या बराबर, 2 = बराबर, 3 = ग्रेटर से बराबर या बराबर, और 4 = इससे बड़ा, आप ऑर्डर कर सकते हैं वांछित परिणाम प्राप्त करने के लिए यह अन्य कॉलम के साथ। – StrixVaria

+0

स्ट्रिक्सविरिया के सुझाव को प्रतिबिंबित करने के लिए अपडेट किया गया! – tinkertime

+0

मुझे यह विचार पसंद है – cafenervosa

1

सबसे आसान, करने के लिए आम तौर पर है इन मामलों के लिए पूर्वनिर्धारित मानों का उपयोग करें, उदाहरण के लिए, 3.0 का मान 3% है जिसका अर्थ है 2.99 का मतलब है "3% से कम"।

चूंकि इन "कम से कम" और "से अधिक" मूल्यों आम तौर पर केवल रेंज के सिरों पर लागू होते हैं, इस तरह के एक सम्मेलन सभी फ़िल्टरिंग से निपटने और एक ही क्षेत्र मूल्य के साथ आदेश देने, एक मानक फैशन में अनुमति देता है। इस दृष्टिकोण के लिए मुख्य दोष यह है कि यह प्रदर्शन उद्देश्यों के लिए, आवेदन के स्तर पर इन सीमा मानों को हार्ड-कोडिंग का तात्पर्य है।

विकल्प एक दो कॉलम मूल्य, एक अंकीय मान और एक "क्वालीफायर" कॉलम जो एक कोड "सही मूल्य" या या "से अधिक" "कम से कम" इससे स्पष्ट है शामिल है के साथ शुरू करने की है। हालांकि यह दृष्टिकोण अधिक सामान्य होने के लिए प्रतीत होता है (और यह, प्रदर्शन के स्तर पर) है, कुछ हार्ड कोडिंग अक्सर "इनपुट" के स्तर पर आवश्यक होती है।

+0

लेकिन आवेदन में ऐसी सीमाएं नहीं होनी चाहिए? डाटाबेस डेटा स्टोर करने के लिए है। व्यापार तर्क डेटा पर नियम लागू करता है और यूआई डेटा को सार्थक प्रारूप में उपयोगकर्ता को दिखाता है। – Corin

+0

@ कोरिन, हां, इस तरह की सीमाएं और आम तौर पर पैमाने के बारे में अंतर्निहित जानकारी आवेदन स्तर पर संभाली जानी चाहिए। – mjv

0

जब तक आप कम फ़ील्ड जैसे कम_equal_more (varchar) (<। =,> या पाठ समकक्ष), माप (deciaml) (3.5 या जो भी आपके परिशुद्धता का स्तर है) और इकाइयों_of_measurment (varchar) (प्रतिशत की तरह, या मील या मीटर में पूर्ण - कहीं भी) - आपको वर्कर में स्टोर करना चाहिए। लेकिन मैं आपके डेटा को तोड़ दूंगा - आपकी खोज quesries को आसान बना देगा। पूर्ण-पाठ खोज से निपटना (यदि आपको एक फ़ील्ड में सब कुछ स्टोर करना है तो आपको करना होगा) यदि आप अपना डेटा तोड़ते हैं तो आपको पूछे जाने वाले प्रश्नों की तुलना में बहुत मुश्किल है।

0

मैं आपके डेटा को अंतराल के रूप में संग्रहीत करने का सुझाव दूंगा, यानी < 3% [0,3) बन जाएगा, 3% [3,3] बन जाएगा, और इसी तरह। यह आपके डेटाबेस में 4 कॉलम ले सकता है, प्रत्येक एंडपॉइंट्स के लिए एक और एक यह इंगित करने के लिए कि अंतराल प्रत्येक अंत बिंदु पर खुला या बंद है या नहीं। संख्यात्मक डेटा संख्यात्मक रखें ताकि आप उस पर अंकगणित कर सकें, जिस तरह से आपकी पहुंच और हेरफेर आवश्यकताओं के अनुरूप सर्वोत्तम तरीके से 'खुले' और 'बंद' मानों को एन्कोड करें।

संबंधित मुद्दे