नहीं, किसी सरणी में FK को संग्रहीत करना सामान्य प्रयोजन तालिकाओं के लिए कभी भी एक अच्छा विचार नहीं है। सबसे पहले सबसे महत्वपूर्ण बात यह है कि आपने गुजरने में उल्लेख किया है:सरणी तत्वों के लिए विदेशी कुंजी बाधाएं लागू नहीं की गई हैं (अभी तक)। यह अकेले ही इस विचार को रद्द कर देना चाहिए।
पोस्टग्रेज 9.3 के लिए फीचर को लागू करने का प्रयास किया गया था जिसे गंभीर प्रदर्शन मुद्दों से रोक दिया गया था। इस थ्रेड को pgsql-hackers पर देखें।
इसके अलावा, कुछ उपयोग के मामलों के लिए सरणियों के साथ पढ़ने के प्रदर्शन में सुधार किया जा सकता है, प्रदर्शन प्लमेट्स लिखें। इसके बारे में सोचें:एक लंबी सरणी से किसी एक तत्व को सम्मिलित करने, अद्यतन करने या हटाने के लिए, अब आपको प्रत्येक बंद किए गए तत्व के लिए संपूर्ण सरणी के साथ एक नया पंक्ति संस्करण लिखना होगा। और मुझे आगे भी गंभीर लॉक विवाद दिखाई दे रहा है।
यदि आपकी तालिका केवल पढ़ने के लिए . है , विचार अधिक समझ में आने लगता है। लेकिन फिर मैं एक भौतिक दृश्य पर विचार करूंगा। असामान्य सरणियों के साथ शीर्ष पर सामान्यीकृत कई-से-अनेक कार्यान्वयन:
इस पर रहते हुए, एमवी सभी जॉइन टेबल को शामिल कर सकता है और बेहतर पढ़ने के प्रदर्शन (सामान्य उपयोग के मामलों के लिए) के लिए एक फ्लैट टेबल तैयार कर सकता है। इस तरह आपको संदर्भात्मक अखंडता मिलती है और अच्छा पढ़ने (और लिखने) का प्रदर्शन - एमवी के प्रबंधन के लिए ओवरहेड और अतिरिक्त भंडारण की कीमत पर।