JSON से रिलेशनल डेटाबेस तक

Entity Enricher बनाम Supabase MCP

कोई डेटाबेस हर इंसर्ट स्वीकार कर सकता है और फिर भी आपको गलत खरीद बजट दे सकता है। देखें कि गलत जगह रखी गई कीमत प्रोडक्ट कैटलॉग को कैसे खराब करती है, और Entity Enricher समीक्षित पहचान व संबंध निर्णयों को दोहराने योग्य टेबल और अपडेट में कैसे बदलता है।

उदाहरण देखेंDatabase Sync कैसे काम करता है

कौन तय करता है कि किस टेबल में क्या जाएगा?

Supabase MCP का उपयोग करने वाला एजेंट

एजेंट आपके JSON की व्याख्या करता है और SQL लिखता है। Supabase MCP उस SQL को apply_migration और execute_sql के ज़रिए चलाता है। मॉडलिंग, पहचान और बार-बार इम्पोर्ट के नियम आपके एजेंट या एप्लिकेशन को ही देने होते हैं।

Entity Enricher

आप एक पुन: उपयोग योग्य स्कीमा की समीक्षा करते हैं, जिसमें की और साझा या पैरेंट-स्वामित्व वाले रिलेशनशिप शामिल हैं। इंजन टेबल, कंस्ट्रेंट और स्ट्रक्चरल इंडेक्स तैयार करता है, फिर आगे के डेटा बदलाव उसी मॉडल के ज़रिए पहुँचाता है। AI मॉडल का प्रस्ताव देने में मदद करता है; कोड उसके नियम लागू करता है।

यह तुलना ऐसे एजेंट पर लागू होती है जो Supabase MCP के ज़रिए JSON से निर्माण करता है। अच्छी तरह डिज़ाइन किया गया Supabase एप्लिकेशन भी ये सुरक्षा उपाय लागू कर सकता है। नीचे दिया गया त्रुटिपूर्ण मॉडल एक मॉडलिंग जोखिम का उदाहरण भर है, न कि Supabase की डिफ़ॉल्ट व्यवस्था या कोई मापी गई विफलता दर।

दो प्रोडक्ट। एक सप्लायर। दो अलग-अलग मूल्य।

इस काल्पनिक कैटलॉग में दो प्रोडक्ट सैंपल हैं। सप्लायर SUP-7 एक लैंप €12 में और एक डेस्क €85 में बेचता है। सप्लायर साझा है; मूल्य और lead time हर ऑफ़र के अपने होते हैं।

इनपुट JSON — एक ही एंटिटी प्रकार के दो सैंपल
[
  {
    "sku": "LAMP-01",
    "name": "Reading lamp",
    "offers": [
      {
        "supplier": {
          "supplier_id": "SUP-7",
          "name": "Northstar Supply"
        },
        "unit_cost_eur": 12,
        "lead_time_days": 3
      }
    ]
  },
  {
    "sku": "DESK-02",
    "name": "Writing desk",
    "offers": [
      {
        "supplier": {
          "supplier_id": "SUP-7",
          "name": "Northstar Supply"
        },
        "unit_cost_eur": 85,
        "lead_time_days": 14
      }
    ]
  }
]

Entity Enricher में ये स्कीमा उदाहरण हैं, स्वचालित डेटा इंपोर्ट नहीं। जनरेट किए गए स्कीमा की समीक्षा करें, सप्लायर को शेयर्ड और ऑफ़र को पैरेंट-ओन्ड के रूप में चिह्नित करें, फिर प्रकाशित करें और मेल खाते रिकॉर्ड एनरिच या इंजेक्ट करें। इस उदाहरण में स्थिर SKU और सप्लायर ID पहचान प्रदान करते हैं।

फ़ॉरेन की यह नहीं बता सकती कि कीमत किसकी है

उदाहरणात्मक ख़राब मैपिंग

मूल्य सप्लायर पर रखा गया है

product
कॉलम और कीSQL प्रकार
skuPKtext
nametext
supplier_idFKtext

product.supplier_id → supplier.supplier_id

supplier
कॉलम और कीSQL प्रकार
supplier_idPKtext
nametext
unit_cost_eurnumeric
lead_time_daysinteger

SUP-7 को डेस्क के ऑफ़र से अपडेट करने पर लैंप का मूल्य और डिलीवरी समय ओवरराइट हो जाता है। फ़ॉरेन की मान्य है। डेटा गलत है। यह लेआउट हर प्रोडक्ट को एक ही सप्लायर तक सीमित भी कर देता है।

Entity Enricher, समीक्षित मॉडल के साथ

हर ऑफ़र अपने तथ्य खुद रखता है

product
कॉलम और कीSQL प्रकार
skuPKtext
nametext
supplier
कॉलम और कीSQL प्रकार
supplier_idPKtext
nametext

product 1 → N offer N ← 1 supplier

offer
कॉलम और कीSQL प्रकार
product_skuPK / FKtext
supplier_idPK / FKtext
unit_cost_eurnumeric
lead_time_daysinteger

एक ही सप्लायर row दोबारा इस्तेमाल होती है। हर प्रोडक्ट–सप्लायर जोड़ी का अपना मूल्य और lead time होता है। डेस्क का ऑफ़र जोड़ने पर लैंप का ऑफ़र वैसा ही बना रहता है।

टेबल नाम और नेचुरल की सरल कर दिए गए हैं; sync मेटाडेटा शामिल नहीं है। PK = प्राइमरी की, FK = फ़ॉरेन की। दोनों offer की मिलकर एक कंपोजिट की बनाती हैं। यह उदाहरण मानता है कि हर जोड़ी के लिए एक ही मौजूदा ऑफ़र है; मूल्य इतिहास, मुद्राओं या मात्रा स्तरों के लिए अतिरिक्त मॉडलिंग ज़रूरी है।

देखें खरीद बजट कैसे बदलता है

एक खरीदार को 100 लैंप चाहिए। यह देखने के लिए कि हर मॉडल क्या लौटाता है, पहले और दूसरे इंपोर्ट के बीच स्विच करें।

ख़राब मॉडल: 100 लैंप का बजट

€8,500

€7,300 अधिक दिखाया गया। आपकी मार्जिन रिपोर्ट और खरीद पूर्वानुमान अब डेस्क के मूल्य का उपयोग कर रहे हैं।

समीक्षित EE मॉडल: 100 लैंप का बजट

€1,200

लैंप का ऑफ़र €12 और 3-दिन के lead time के साथ बना रहता है। डेस्क का ऑफ़र एक अलग row है।

सैंपल डेटा पर आधारित उदाहरणात्मक गणना; कोई डेटाबेस कॉल या मापा गया वित्तीय नुकसान नहीं।

टेबल बन जाने के बाद आने वाली लागतें

बिखरे हुए सप्लायर रिकॉर्ड

हर इम्पोर्ट पर नया सप्लायर ID बनता है और खरीदारी डुप्लिकेट प्रोफ़ाइल में बँट जाती है। खर्च के कुल आँकड़े और सप्लायर तुलना भ्रामक हो जाते हैं।

Entity Enricher

घोषित स्थिर कीज़ दोहराई गई एंटिटीज़ को एक ही जगह मिला देती हैं। लेबल अलग-अलग होने पर वैकल्पिक सिमेंटिक ID मदद कर सकती हैं, हालाँकि मैचों की समीक्षा फिर भी ज़रूरी है।

धीमी सप्लायर लुकअप और अनावश्यक राइट

product_sku से शुरू होने वाली जंक्शन की, supplier_id से शुरू होने वाले इंडेक्स की जगह नहीं लेती। कैटलॉग बढ़ने पर रिवर्स लुकअप महंगे हो सकते हैं।

Entity Enricher

EE अपने संबंधों के लिए स्ट्रक्चरल इंडेक्स बनाता है, जिनमें रिवर्स जंक्शन लुकअप शामिल हैं, और अनावश्यक लीडिंग-प्रिफ़िक्स इंडेक्स से बचता है। बाकी इंडेक्स अपनी वास्तविक क्वेरीज़ के अनुसार ट्यून करें।

नया फ़ील्ड डाउनस्ट्रीम इंपोर्ट तोड़ देता है

आपके JSON में offer फ़ील्ड जुड़ जाती है, पर टारगेट टेबल या इम्पोर्ट SQL में नहीं। नया डेटा या तो लोड नहीं हो पाता या उन रिपोर्ट्स तक कभी नहीं पहुँचता जिन्हें उसकी ज़रूरत है।

Entity Enricher

पब्लिश किया गया स्कीमा टेबल की संरचना और डेटा प्रोजेक्शन दोनों तय करता है। पब्लिश करने से पहले समर्थित माइग्रेशन का प्रीव्यू देखें; असमर्थित ट्रांसफ़ॉर्मेशन ब्लॉक कर दिए जाते हैं।

रीट्राई काम दोहराता है या नए डेटा को ओवरराइट कर देता है

इंपोर्ट के बाद कनेक्शन टूट जाता है। रीप्ले नियमों के बिना, दोबारा कोशिश करने से डुप्लिकेट बन सकते हैं; कोई पुराना अपडेट हाल के ऑफ़र को बदल सकता है।

Entity Enricher

EE क्रमबद्ध डिलीवरी, पहचान-आधारित अपसर्ट और रिवीज़न गार्ड देता है। PostgreSQL क्लाइंट एक बैच को ट्रांज़ैक्शन में लागू करता है और कमिट के बाद पुष्टि भेजता है।

सफल एनरिचमेंट, अधूरा कैटलॉग

मॉडल JSON लौटाता है, लेकिन किसी ऑफ़र में ज़रूरी की नहीं होती या टारगेट राइट अस्वीकार कर देता है। अकेला सफलता संदेश गायब प्रोडक्ट और ऑफ़र छिपा सकता है।

Entity Enricher

एडमिशन नीतियाँ किसी एंटिटी को अस्वीकार कर सकती हैं या अधूरे चाइल्ड छोड़ सकती हैं। EE आंशिक परिणाम रिपोर्ट करता है और रेप्लिका डिलीवरी को अलग से ट्रैक करता है, ताकि आप पहचान सकें कि किसे ठीक करना है।

हर रिफ़्रेश पूरे कैटलॉग को दोबारा लिखता है

अपरिवर्तित ऑफ़र को दोबारा लिखने से डेटाबेस पर काम बढ़ता है, इंडेक्स अनावश्यक रूप से मेंटेन होते रहते हैं और डाउनस्ट्रीम बदलाव प्रोसेसिंग में शोर बढ़ जाता है।

Entity Enricher

EE अपरिवर्तित एंटिटी स्थिति का पता लगाता है और अपरिवर्तित मानों पर रो अपडेट रोकता है। उपभोक्ता बदलावों के लिए डेल्टा फ़ीड फ़ॉलो कर सकते हैं, जिसमें डिलीशन भी शामिल हैं।

जिन बातों पर अब भी आपका निर्णय ज़रूरी है

पब्लिश करने से पहले पहचान, स्वामित्व और हर फ़ील्ड के अर्थ की समीक्षा करें। EE उन निर्णयों को निष्पादन योग्य बनाता है; यह सिद्ध नहीं कर सकता कि आपका बिज़नेस मॉडल सही है। सिमैंटिक मैचिंग गलती कर सकती है, और क्वेरी प्रदर्शन अब भी वर्कलोड और डेटाबेस के आकार पर निर्भर करता है।

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

पहले से Supabase इस्तेमाल कर रहे हैं?

Supabase MCP तब उपयोगी है जब आप चाहते हैं कि कोई एजेंट डेटाबेस की जाँच करे और कस्टम SQL लिखे। EE तब उपयोगी है जब वही डेटा कॉन्ट्रैक्ट लगातार एक जैसे रिलेशनल अपडेट देता रहे। कनेक्शन और डेटाबेस अनुमतियों के अधीन, आप EE के sync क्लाइंट के गंतव्य के रूप में Supabase PostgreSQL का उपयोग कर सकते हैं। एप्लिकेशन एक्सेस नीतियाँ कॉन्फ़िगर करना आपकी ही ज़िम्मेदारी रहती है।

स्रोत और तुलना का दायरा

10 सितंबर 2026 को समीक्षित। Supabase माइग्रेशन और Advisors देता है जो गायब इंडेक्स को चिह्नित करते हैं; EE की विशिष्टता समीक्षित एनरिचमेंट स्कीमा से नियम बनाना और उन्हें लागू करना है।