Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

तालिकाओं के लिए भाषा अनुवाद

मुझे यकीन नहीं है कि आप टेबल की संख्या के बारे में चिंतित क्यों हैं:कम टेबल होने का मतलब यह नहीं है कि आपका डेटाबेस छोटा, अधिक कुशल या बेहतर डिज़ाइन किया गया है। विशेष रूप से यदि तालिकाओं की संख्या कम करने से आपके प्रश्नों की जटिलता बढ़ जाती है, तो मैं इसे करने में बहुत सावधानी बरतूंगा।

वैसे भी, मैं प्रति 'आधार' तालिका में एक अनुवाद तालिका के लिए जाऊंगा। मुख्य कारण यह है कि आपका दूसरा समाधान लचीला नहीं है:यदि प्राथमिक कुंजी एक पूर्णांक नहीं है तो इसे लागू करना और उपयोग करना बेहद मुश्किल हो जाता है। अनुवाद के लिए क्वेरी करना भी अधिक जटिल है, और तालिका के आकार और डेटा के आधार पर, इसे प्रभावी ढंग से अनुक्रमित करना मुश्किल हो सकता है।

यह स्पष्ट नहीं है कि आपके पास TranslationID क्यों है Products . पर मेज़; आमतौर पर संबंध बिल्कुल उल्टा होता है:

create table dbo.Products (
    ProductCode char(10) not null primary key,
    ProductName nvarchar(50) not null,
    ProductDescription nvarchar(100) not null,
    -- other columns
)

create table dbo.ProductsTranslations (
    ProductCode char(10) not null,
    LanguageCode char(2) not null,
    ProductName nvarchar(50) not null,
    ProductDescription nvarchar(100) not null,
    -- other translations
    constraint FK1 foreign key (ProductCode)
        references dbo.Products (ProductCode),
    constraint FK2 foreign key (LanguageCode)
        references dbo.Languages (LanguageCode),
    constraint PK primary key (ProductCode, LanguageCode)
)

आपके टूलसेट और परिनियोजन प्रक्रिया के आधार पर आप अपने डेटाबेस बिल्ड के हिस्से के रूप में सीधे आधार वाले से अनुवाद तालिकाएँ बनाना चाह सकते हैं। और आप आधार तालिका का एक सुविधाजनक, 'पूरी तरह से अनुवादित' संस्करण प्रदान करने के लिए दृश्यों का उपयोग कर सकते हैं।

एक दिलचस्प सवाल यह है कि Products . में कॉलम के लिए किस भाषा का उपयोग किया जाता है? और यदि किसी अनुवाद की आवश्यकता नहीं होने पर उनका सीधे उपयोग किया जा सकता है। मेरा सुझाव यह होगा कि सभी प्रोडक्शन कोड को एक भाषा पैरामीटर पास करना चाहिए और टेक्स्ट को ProductsTranslations से लेना चाहिए। तालिका केवल अंग्रेजी के लिए भी (या आपकी आंतरिक कॉर्पोरेट भाषा जो भी हो)। इस तरह आप सुनिश्चित हो सकते हैं कि सभी 'आधिकारिक' नाम एक ही तालिका में पाए जाते हैं, और आधार तालिका पर कॉलम डेटा मॉडल की स्पष्टता और पूर्णता के साथ-साथ डेवलपर सुविधा और (संभवतः) तदर्थ पर आंतरिक उपयोग के लिए हैं। रिपोर्ट वगैरह।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर कर्सर प्रकार - KEYSET कर्सर | SQL सर्वर ट्यूटोरियल / TSQL ट्यूटोरियल

  2. हर पंक्ति का चयन कैसे करें जहां कॉलम मान अलग नहीं है

  3. SQL सर्वर में LEFT ANTI SEMI JOIN कैसे करें?

  4. पाइथन सब कुछ सेट करने के बाद हेरोकू पर ओडीबीसी चालक नहीं ढूंढ सकता है

  5. SQL सर्वर प्रबंधन स्टूडियो (SSMS) में लाइन नंबर कैसे जोड़ें - SQL सर्वर / TSQL ट्यूटोरियल भाग 11