मुझे निम्न स्थिति का सामना करना पड़ रहा है।MySQL डेटाबेस पर जटिल सॉर्टिंग
हमारे पास अनुवाद के साथ एक इकाई के साथ एक सीएमएस है। ये अनुवाद एक अलग-अलग टेबल में एक-से-कई रिश्ते के साथ संग्रहीत किए जाते हैं। उदाहरण के लिए newsarticles
और newsarticle_translations
। उपलब्ध languages
की मात्रा उसी सीएमएस द्वारा गतिशील रूप से निर्धारित की जाती है।
एक नया न्यूजर्टिकल दर्ज करते समय संपादक को कम से कम एक अनुवाद दर्ज करना होगा, जो उपलब्ध भाषाओं में से एक वह है।
हमारे सीएमएस में न्यूजर्टिकल अवलोकन में हम (अनुवादित) लेख शीर्षक के साथ एक स्तंभ दिखाना चाहते हैं, लेकिन चूंकि कोई भी भाषा अनिवार्य नहीं है (उनमें से एक अनिवार्य है लेकिन मुझे नहीं पता कि मैं कौन सा हूं) वास्तव में नहीं जानते कि दर्ज की गई भाषा के बावजूद प्रत्येक न्यूज़र्टिकल के लिए शीर्षक चुनने के लिए मेरी mysql क्वेरी कैसे बनाएं।
और इसे सब कुछ कठिन बनाने के लिए, हमारे प्रबंधक ने शीर्षक पर सॉर्ट करने में सक्षम होने की संभावना के लिए कहा, इसलिए एक अलग क्वेरी में अनुवाद लाने से मुझे पता चला है।
किसी को भी इस बात का कोई विचार है कि इसे सबसे कुशल तरीके से कैसे हल किया जाए?
यहाँ मेरी मेज स्कीमा का यह
> desc news;
+-----------------+----------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+----------------+------+-----+-------------------+----------------+
| id | int(10) | NO | PRI | NULL | auto_increment |
| category_id | int(1) | YES | | NULL | |
| created | timestamp | NO | | CURRENT_TIMESTAMP | |
| user_id | int(10) | YES | | NULL | |
+-----------------+----------------+------+-----+-------------------+----------------+
> desc news_translations;
+-----------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| enabled | tinyint(1) | NO | | 0 | |
| news_id | int(1) unsigned | NO | | NULL | |
| title | varchar(255) | NO | | | |
| summary | text | YES | | NULL | |
| body | text | NO | | NULL | |
| language | varchar(2) | NO | | NULL | |
+-----------------+------------------+------+-----+---------+----------------+
पुनश्च मदद कर सकता है कर रहे हैं: मैं हालांकि सबक्वेरी के बारे में है और संगठित() समाधान लेकिन उन बल्कि गंदा चाल लगते हैं, सोच अगर कुछ बेहतर जानते है कि मैं कर रहा हूँ सोच नहीं रहा?
यह फ़ायदेमंद होगा भी एक 'तालिका में' news' title' क्षेत्र है जिसके लिए डिफ़ॉल्ट शीर्षक के रूप में इस्तेमाल किया जाएगा के लिए पर काम कर सकते एक समाचार लेख? भले ही इसका बैकएंड उपयोग के लिए? –
ऐसा होगा लेकिन इस तरह की अनावश्यकता मेरा आखिरी उपाय होगा। मैं एक क्लीनर/बेहतर समाधान की तलाश में हूं, लेकिन सुझाव के लिए धन्यवाद। – ChrisR
शायद एक बाएं जॉइन? – Benubird