ڈیٹا بیس سیاسی رہنماؤں کے بیانات (Database Schema)

محمداحمد

لائبریرین
بیان بازی کے ٹیبل کو مزید اینالائز کرنے کی ضرورت ہے کیونکہ بیان کسی شخصیت کے خلاف بھی ہوسکتا ہے اور پارٹی کے خلاف بھی، بعض اوقات کسی پروجیکٹ یا پالیسی سے متعلق بیان ہوتا ہے جو واپس لے لیا جاتاہے بعد میں۔ بعض اوقات اپنی ہی کسی پالیسی کا تذکرہ ہوتا ہے جس کی کچھ سال بعد تردید کردی جاتی ہے کہ ہم نے تو ایسا کچھ کہا ہی نہیں تھا۔ وغیرہ وغیرہ۔

یہ بھی ٹھیک کہا آپ نے۔

کوشش یہ ہونی چاہیے کہ ڈیٹا بیس بہت زیادہ پیچیدہ نہ ہونے کے باوجود بودی نہ ہو۔ اور زیادہ سے زیادہ مقاصد کے لئے کارآمد ہو۔
 

محمداحمد

لائبریرین
اب تک کی گفتگو سے سمجھ آتا ہے کہ ہمیں مندرجہ ذیل ٹیبلز کی ضرورت ہوگی۔

  1. جماعتیں
  2. شخصیات
  3. بیانات
  4. موضوعات
  5. ذیلی عنوانات(ٹیگز)
ٹھیک؟
 

محمداحمد

لائبریرین
اسٹیٹمینٹ ٹیبل کی نئی شکل:


S. NO. | Field Name | DATA TYPE | Explanation
1 | id | INTEGER | بیان کا شناختی نمبر
2 | StmtText | TEXT | بیان کی عبارت
3 | StmtBy | VARCHAR | کس نے بیان دیا
4 | StmtDate | TIMESTAMP | کب بیان دیا گیا
5 | StmtSubject | VARCHAR | کس متعلق بیان دیا گیا
6 | StmtVenue | VARCHAR | کس مقام سے بیان جاری کیا گیا
7 | StmtEvent | VARCHAR | کس موقعے پر بیان جاری کیا گیا
8 | StmtAboutPerson | VARCHAR | کس کے بارے میں بیان جاری کیا گیا
9 | StmtForAgainstSubject | VARCHAR | بیان موضوع کے حق میں تھا یا خلاف
10 | StmtForAgainstPerson | VARCHAR | بیان شخصیت کے حق میں تھا یا خلاف
11 | TagsIds | VARCHAR | ذیلی عنوانات
12 | StmtValidity | VARCHAR | بیان کی حیثیت قائم ہے یا بیان واپس لے لیا گیا
سیریل نمبر اس لئے دیا ہے کہ محفل کا ٹیبل از خود سورٹنگ کا کام کردیتا ہے اور ترتیب حروف تہجی کے لحاظ سے ہو جاتی ہے۔

اس پر ماہرین کی رائے ہو جائے۔ :)

کیا کمی بیشی ہونی چاہیے۔
 
آخری تدوین:

محمدصابر

محفلین
صابر بھائی میں نے انہیں شخصیت اورپارٹی کے ٹیبلز کا مشورہ ان کا ریکارڈ رکھنے کے لئے نہیں بلکہ اسٹرکچر کو نارملائز کرنے کے نقطہ نظر سے دیا تھا کہ بعد میں کوئریز لگا کر ہر طرح کا ریکارڈ اٹھانا آسان ہوجائے گا۔ لیکن جب شخصیت اور پارٹی کے ٹیبل الگ ہوں گے تو پھر کچھ نہ کچھ فیلڈز بھی بڑھالی جاتی ہیں ان کا ریکارڈ رکھنے کے لئے۔
میں بھی یہی کہہ رہا ہوں کہ مارکیٹ میں بھی جاؤ تو گاہک کو سافٹویئر میں جو سہولیات چاہیے ہوتی ہیں وہ اس کا صرف ایک دو فیصد ہی بتا رہے ہوتے ہیں۔ جب سافٹویئر دے دو تو پھر انہیں یاد آتا ہے اچھا یہ بھی ہونا چاہیے تھا وہ بھی ہونا چاہیے تھا۔ احمد بھائی پہلے مراسلے میں صرف بیانات کا ریکارڈ رکھ رہے تھے۔ آپ کے کہنے پر پارٹی اور شخصیات کا بھی رکھیں گے۔
 

محمداحمد

لائبریرین
میں بھی یہی کہہ رہا ہوں کہ مارکیٹ میں بھی جاؤ تو گاہک کو سافٹویئر میں جو سہولیات چاہیے ہوتی ہیں وہ اس کا صرف ایک دو فیصد ہی بتا رہے ہوتے ہیں۔ جب سافٹویئر دے دو تو پھر انہیں یاد آتا ہے اچھا یہ بھی ہونا چاہیے تھا وہ بھی ہونا چاہیے تھا۔ احمد بھائی پہلے مراسلے میں صرف بیانات کا ریکارڈ رکھ رہے تھے۔ آپ کے کہنے پر پارٹی اور شخصیات کا بھی رکھیں گے۔

پہلے مراسلے میں صرف تصور پیش کیا گیا ہے اور سفارشات مانگی گئی ہیں۔

چونکہ یہ کام صرف سیکھنے کی غرض سے ہے سو اس میں مناسب حد تک کارآمد ڈیٹا بیس بنانے کی کوشش کریں گے۔ سو آپ یوں سمجھیے کہ یہ کام کسٹمر کے لئے نہیں بلکہ اپنے لئے کر رہے ہیں ۔ :) یہاں پیش کرنے کا مقصد بھی یہی ہے کہ جو بات میرے ذہن میں نہیں وہ دیگر دوست بتا دیں۔ :)
 

محمدصابر

محفلین
پہلے مراسلے میں صرف تصور پیش کیا گیا ہے اور سفارشات مانگی گئی ہیں۔

چونکہ یہ کام صرف سیکھنے کی غرض سے ہے سو اس میں مناسب حد تک کارآمد ڈیٹا بیس بنانے کی کوشش کریں گے۔ سو آپ یوں سمجھیے کہ یہ کام کسٹمر کے لئے نہیں بلکہ اپنے لئے کر رہے ہیں ۔ :) یہاں پیش کرنے کا مقصد بھی یہی ہے کہ جو بات میرے ذہن میں نہیں وہ دیگر دوست بتا دیں۔ :)
ٹھیک ہے تو پھر آپ کم از کم دس بیانات اپنی تمام تر تفصیل کے ساتھ گوگل ڈاکس پر شیئر کریں۔ یہ آپ کا ہوم ورک ہے۔ :)
 
تجاویز کے ساتھ ساتھ نشان دہی اور متبادل کی فراہمی بھی ہونی چاہیے۔ ورنہ اگر میں نے ہی کرنا ہوتا تو وہ تو انفرادی حیثییت میں بھی جیسے تیسے ہو ہی جاتا۔ :)

پھر اس دھاگے کی افادیت کا بھی تو آپ لوگوں کو ہی خیال رکھنا ہے۔ :)

فکر نہ کرو بھئی ساتھ ساتھ ہی ہیں اور کہیں بیچ منجھدار چھوڑ جانے کا ارادہ نہیں۔

یہ کام مجھے بھی مزے کا لگ رہا ہے اور اسے جاری رکھنا ہے اصل ڈیٹا کے ساتھ ، اس کا لطف آئے گا۔ :)
 
اگر آپ کی ضرورت جو پہلے مراسلے میں بیان کی گئی ہے اتنی ہی ہوتی تو زیادہ کام ٹیگز میں ہی ختم کر دیتا ہے۔ اگر کسی سمجھ بوجھ والے بندے نے ڈیٹا بیس میں ٹیگز ڈالے ہوں تو پھر بہت سارے مسائل ختم ہو جاتے ہیں بس کیوریز آپ کے دماغ کو ہلانا شروع کر دیتی ہیں۔
دوسری بات یہ کہ اگر آپ سیاسی رہنماؤں کے بیانات کے علاوہ پارٹی کا اور بندے کا ریکارڈ بھی رکھنا چاہتے ہیں تو اب آپ کی ضرورت بھی فرق ہو گئی ہے۔ تو آپ کو مزید ٹیبلز کی ضرورت ہو گی جیسے کچھ رانا نے بیان کردیئے ہیں۔
تیسری بات ٹیگز دونوں صورتوں میں محفوظ کیے جا سکتے ہیں لیکن مجھے ٹیبل میں علیحدہ علیحدہ محفوظ کرنا پسند ہے۔ جس میں ٹیگ یونیک ہو گا۔ اور ایک تیسرا ٹیبل بیان اور ٹیگز کو جوڑنے کا کام کرے گا۔

ٹیگز جب ایک سے زیادہ بڑھیں گے تو وہ خودبخود نارملائزیشن کی خلاف ورزی پیدا کرے گا اور اس کے لیے لازمی طور پر یا تو ٹیبل کو تقسیم کرنا ہوگا یا "مک مکا" کرنا ہوگا جسے ڈی نارملائزیشن تکنیکی زبان میں کہتے ہیں۔

محمداحمد ، بھئی ساتھ ساتھ ٹیبل میں تبدیلیاں تو کرتے جاؤ تاکہ اس پر بحث اور تجاویز آگے بڑھیں۔
 

محمداحمد

لائبریرین
ٹھیک ہے تو پھر آپ کم از کم دس بیانات اپنی تمام تر تفصیل کے ساتھ گوگل ڈاکس پر شیئر کریں۔ یہ آپ کا ہوم ورک ہے۔ :)

ہوم ورک کے لئے کچھ وقت دے دیجے۔ :)

ویسے اس کے لئے بھی ایک جانچ کا معیار ہونا چاہیے کہ سیاستدانوں کی تقاریر سے بیانات کیسے (کس پالیسی کے تحت) اخذ کئے جائیں۔ :) بہرکیف یہ کام تو وہ لوگ کریں گے جو اس ڈیٹا بیس کے صارف ہوں گے۔ :)

تجربات کے لئے ہم کچھ اصل اور کچھ ڈمی بیانات نکال کر آزمائشی ڈیٹا تیار کرنے کی کوشش کریں گے۔ بی این این سے بھی سیاسی رہمناؤں کے بیانات اخذ کئے جا سکتے ہیں۔ :p
 

محمداحمد

لائبریرین
سب سے پہلے تو دعویٰء دست برداری (Disclaimer) کہ ڈیٹا بیس سے متعلق میری معلومات واجبی بھی نہیں ہیں۔ تاہم میں نے اپنے طور پر ٹیبل بنانے کی کوشش کی ہے۔

آپ لوگ اسے دیکھیں اور بتائیں کہ کہاں کہاں غلطی ہے اور کہاں کہاں بہتری کی گنجائش ہے۔ اور مزید یہ کیا کیا جائے۔


ایکسل فائل یہاں سے حاصل کی جا سکتی ہے۔
 

محمدصابر

محفلین
ابھی تو مجھے ٹھیک لگ رہا ہے۔ بعد میں فرصت سے دیکھتا ہوں۔ memberSince بھی ایک فیلڈ ہو سکتی ہے۔
 
میرے خیال میں احمد، شروع ایک ٹیبل سے کرو اور اس میں ڈیٹا بھی ہو ۔

اصل چیز ڈیٹا ہے وہ خود بتائے گا کہ اسے اس ٹیبل میں ہونا چاہیے یا نہیں یا اس کے حساب سے فیلڈ کا نام صحیح ہے کہ نہیں۔

ٹیبل کی ڈیٹا ٹائپ تو ہر ڈیٹابیس کے حساب سے بدل سکتی ہیں اس لیے ان پر توجہ کی فی الحال ضرورت نہیں۔

ایک ٹیبل اور اس میں کم از کم دس ریکارڈ ہوں تو پھر اس پر گفتگو آگے بڑھے گی۔

یہ سوال بھی پیدا ہو گا کہ ایک ہی ٹیبل کافی کیوں نہیں ؟ جس کے جواب میں ڈیٹابیس ڈیزائن اور نارملائزیشن (Normalization) کے اصول بھی زیر بحث آئیں گے۔

سیاسی بیانات کے لیے شہباز شریف کے لوڈ شیڈنگ ختم کرنے کے بیانات۔
راجہ رینٹل کے لوڈ شیڈنگ ختم کرنے کے بیانات ۔
مسلم لیگ ن کے سعد رفیق اور چوہدری نثار کے انتخابی حلقہ جات کی تصدیق کے متعدد بیانات۔
 

محمدصابر

محفلین
بہت مشکل سے 10 بیانات اکھٹے کیے ہیں۔ سب کے سب ڈان نیوز سے اخذ کئے ہیں۔

یہاں دیکھ سکتے ہیں آپ لوگ۔
ہاہاہا۔ ڈیٹابیس کا سب سے اہم کام ہی ڈیٹا اینٹری ہوتا ہے۔ جو ٹھیک نہ ہو تو پھر وہ ڈیٹا بیس آپ کے لئے فضول ہے۔
سیمپل ٹیبل میں تین کالم ایسے ہیں جن کے لئے ایک ہی بیرونی ٹیبل بن سکتا ہے۔
1۔ StmtBy
2۔ StmtAboutPerson
3۔ StmtForAgainstPerson
ویسے تیسرے کالم کا مقصد سمجھ نہیں آیا۔
StmtEvent کے لئے بھی ایک ٹیبل بن سکتا ہے جس میں اس ایونٹ کی تفصیل رکھی جا سکتی ہے۔
اب آپ ان ٹیبلز کو بنانے اور نہ بنانے کا فیصلہ کریں گے تو مزید ٹیبلز کی گنجائش بھی نکلے گی۔
 

محمداحمد

لائبریرین
ہاہاہا۔ ڈیٹابیس کا سب سے اہم کام ہی ڈیٹا اینٹری ہوتا ہے۔ جو ٹھیک نہ ہو تو پھر وہ ڈیٹا بیس آپ کے لئے فضول ہے۔
سیمپل ٹیبل میں تین کالم ایسے ہیں جن کے لئے ایک ہی بیرونی ٹیبل بن سکتا ہے۔
1۔ StmtBy
2۔ StmtAboutPerson
3۔ StmtForAgainstPerson

یہ تینوں اینٹریز PersonalityTable سے وابستہ ہوں گی۔

تیسرا کالم اس بات کا تعین کرے گا کہ بیان کسی (دوسری شخصیت) کے حق میں یا خلاف دیا گیا ہے۔ یہ آپشنل فیلڈ ہوگی۔
یعنی StmtAboutPerson میں شخصیت کا نام آ جائے گا اور تیسرے کالم میں for یا against آ جائے گا جس سے اندازہ ہوگا کہ بیان مذکورہ شخصیت کے حق میں تھا یا خلاف۔

StmtEvent کے لئے الگ سے ٹیبل بنانے کی ضرورت نہیں ورنہ بہت بکھیڑا پھیل جائے گا۔ یہ صرف بیان کی حد تک ہوگا۔
 

محمدصابر

محفلین
یہ تینوں اینٹریز PersonalityTable سے وابستہ ہوں گی۔

تیسرا کالم اس بات کا تعین کرے گا کہ بیان کسی (دوسری شخصیت) کے حق میں یا خلاف دیا گیا ہے۔ یہ آپشنل فیلڈ ہوگی۔
یعنی StmtAboutPerson میں شخصیت کا نام آ جائے گا اور تیسرے کالم میں for یا against آ جائے گا جس سے اندازہ ہوگا کہ بیان مذکورہ شخصیت کے حق میں تھا یا خلاف۔

StmtEvent کے لئے الگ سے ٹیبل بنانے کی ضرورت نہیں ورنہ بہت بکھیڑا پھیل جائے گا۔ یہ صرف بیان کی حد تک ہوگا۔
پرسنیلٹی ٹیبل کا سیمپل ڈیٹا بھی شیئر کریں۔
 
دلچسپ موضوع ہے اور اب تک کی گفتگو بھی خوب رہی ہے۔ :) :) :)

بعض احباب کا طریقہ کار یہ ہوتا ہے کہ وہ پہلے زیادہ سے زیادہ ایٹریبیوٹ چند ٹیبلز میں سیریلائز کرتے ہیں اور بعد میں جناتی قسم کے اصولوں کے تحت تین یا چار درجات کی نارملائزیشن کرتے ہیں۔ ہمارا اپنا طریقہ کار یہ ہے کہ آبجیکٹ ریلیشنل میپنگ کو ذہن میں رکھا جائے تو ڈیٹا اور ان کے ایٹریبیوٹ کے تعلقات شروع سے ہی کافی واضح ہوتے ہیں اور نارملائزیشن عموماً از خود ہو جاتی ہے۔ چونکہ ہم ریلیشنل ڈیٹا بیس اسکیما ڈیزائن کر رہے ہیں تو اس میں پائے جانے والے ٹیبلز دو طرح کے ہو سکتے ہیں: اول تو وہ جو کسی اینٹٹی یا آبجیکٹ کو محفوظ کرنے کے لیے استعمال ہوں گے اور دوم وہ جو ایک یا زائد اقسام کی اینٹٹیز کے ما بین تعلقات قائم کرنے کے لیے بنائے جائیں گے، خاص کر مینی ٹو مینی ریلیشنز۔ کچھ تعلقات اینٹٹی ٹیبلز کے اندر رہ کر ہی قائم کیے جا سکتے ہیں۔ :) :) :)

ایپلیکیشن کی ضروریات اور ڈیٹا کی نوعیت کو ذہن میں رکھتے ہوئے یہ فیصلہ لیا جاتا ہے کہ اینٹٹیز کو کس حد تک موڈیولرائز کیا جانا چاہیے۔ کئی دفعہ غیر ضروری نارملائزیشن سے احتراز برتنا چاہیے۔ مثال کے طور پر قرآنی آیات کا ذخیرہ کرنا ہو تو ایک اچھا ریلیشنل اسکیما ڈیزائنر ایک عدد ٹیبل سورتوں کا بنائے گا اور دوسرا ٹیبل آیات کا۔ آیات کے ٹیبل میں فارین کی ہوگی جو یہ بتائے گی کہ کوئی آیت کون سی سورت سے متعلق ہے۔ لیکن ایک اچھا ڈیٹا ایڈمنسٹریٹر جب یہ جان سکے گا کہ آیات اور سورتوں کی تعداد، ان کا متن اور ان کا تعلق اس قدر راسخ ہے و محدود ہے کہ ان میں کبھی بھی کوئی تبدیلی نہیں آنے والی تو وہ اس نارملائزیشن کا مشورہ کبھی نہیں دے گا کیونکہ سورتوں کو علیحدہ ٹیبل میں محفوظ کرنے سے کوئی بھی قابل ذکر فائدہ نہیں ہو رہا بلکہ اوور ہیڈ بڑھ رہا ہے۔ البتہ ایسا ہو کہ سورتوں کے نمبر شمار کے ساتھ ساتھ ان کے نام عربی اور رومن دونوں میں لکھنے ہوں تو نارملائزیشن کرنا بہتر ہوگا، گو کہ اس صورت میں بھی ایک ہی ٹیبل میں رہتے ہوئے چند اضافی کالم شامل کرنے میں کوئی حرج نہیں۔ لیکن ایپلیکیشن کی ڈیمانڈ یہ ہو کہ وقت کے ساتھ ساتھ ایپلیکیشن قرآن کے تراجم مختلف زبانوں میں شامل کرے گا اور ہر سورت کے نام کو مختلف زبانوں میں لکھنا پڑ سکتا ہے، پھر نارملائزیشن لازمی ہو جائے گا۔ :) :) :)

مندرجہ بالا پیراگراف کو جملہ جات معترضہ کی ذیل میں شمار کیا جائے کہ پیراگراف معترضہ کی اصطلاح ابھی زیر غور ہے۔ اب بات کرتے ہیں اس اسکیما کی کہ جس کا "بیان" اس لڑی کا حاصل ہے۔ :) :) :)

سب سے پہلے اس سارے قصے کو ایبسٹریکٹ لیول پر دیکھنے کی ضرورت ہے۔ ذیلی تفصیلات اور ایٹریبیوٹس کو کسی بھی وقت شامل کیا جا سکتا ہے لہٰذا اس پر ابتدا میں بہت زیادہ توانائی صرف نہیں کرنی چاہیے۔ ہاں جن ایٹریبیوٹس کے باعث بین الاینٹٹی تعلقات قائم ہو رہے ہیں ان کا ذکر اہم ہوتا ہے۔ مثال کے طور پر جب ہم شخصیت کی بات کرتے ہیں تو اس کے ایٹریبیوٹ مثلاً نام، جلد کی رنگت، پسندیدہ رنگ، ٹوپی کا برانڈ، عینک لگاتے ہیں یا نہیں، داڑھی ہے یا نہیں، اگر ہے تو اس کی رنگت، اور خضاب کا استعمال جیسی تفصیلات لا یعنی ہوتی ہیں، کیوں کہ ان کی تعداد وقت اور ضرورت کے حساب سے بدلتی رہے گی، لیکن وہ اینٹٹی بہر صورت ایک شخصیت ہو گی، لہٰذا اس نہج پر اضافی ایٹریبیوٹ کا بیان ترک کر کے تعلقات کی طرف بڑھنا چاہیے اور شخصیت کو محض شخصیت کہنا چاہیے۔ :) :) :)

چونکہ یہ سارا قصہ بیان بازی سے شروع ہوا اس لیے سب سے پہلے تو بیانات کا ٹیبل ہونا چاہیے۔ اس ٹیبل میں صرف وہی ایٹریبیوٹ ہوں گے جن کا لائف ٹائم بیان کے ساتھ ہی شروع ہوتا ہے اور اسی کے ساتھ ختم ہو جاتا ہے، یعنی بغیر بیان کے اس ایٹریبیوٹ کا کوئی وجود ہی نہیں، مثلاً بیان کا عنوان۔ ذہن میں یہ بات رکھی جائے کہ بیان اپنے آپ میں ایک اینٹٹی ہے، اس بات سے مطلق کہ اس کے ایٹریبیوٹ اور خواص کیا کیا ہیں۔ لہٰذا آگے بڑھتے ہیں اور یہ سوچتے ہیں کہ بیان ہے تو یقیناً کسی فرد یا شخصیت نے دیا ہوگا۔ افراد کا کہا ہوا بیان اس نہج پر کوئی معنی نہیں رکھتا لہٰذا یہاں شخصیات کے بیانات پر بات ہوگی۔ یہ بالکل ممکن ہے کہ بیان کے ہی ٹیبل میں ایک ایٹریبیوٹ کے طور پر بیان دینے والے کا نام لکھ دیا جائے۔ لیکن ایپلیکیشن کا تقاضہ ہے کہ کئی مختلف شخصیات کا نام ایک ہو سکتا ہے، نیز کہ شخصیات کے ساتھ ان کے اپنے بے شمار ایٹریبیوٹ محفوظ کرنے ہیں لہٰذا از خود محسوس ہو جانا چاہیے کہ شخصیات کا علیحدہ ٹیبل ہو اور بیانات کے ٹیبل میں ایک کالم ہو جس میں شخصیات کے ٹیبل سے متعلقہ اندراج کی آئی ڈی لکھ کر دونوں اینٹٹیز کو "ریلیٹ" کیا جا سکے۔ واضح رہے کہ یہاں بیانات والے ٹیبل کی جانب سے دیکھنے پر "مینی ٹو ون" ریلیشنشپ پائی جا رہی ہے، یعنی کئی سارے بیانات کسی ایک ہی شخصیت کے ہو سکتے ہیں۔ اب نئے ٹیبل یعنی شخصیات کا جنم ہو چکا ہے، لہٰذا پہلے کی طرح اس بار بھی ہم ذیلی ایٹریبیوٹس (مثلاً نام اور تاریخ پیدائش وغیرہ جن کی تعداد لا محدود ہو سکتی ہے) میں الجھنے کے بجائے اسے ایک اینٹٹی اور ایبسٹریکٹ کانسیپٹ کے طور پر لے کر آگے بڑھیں گے اور دیکھیں گے کہ مزید کتنے مختلف النوع آبجیکٹ (مثلاً پارٹی) وجود میں آتے ہیں اور ان کے ما بین کیا تعلقات ہیں؟ :) :) :)

اب پھر واپس بیانات کے ٹیبل کی طرف چلتے ہیں۔ ایک اور ضرورت جس کا ذکر ابتدا میں کیا گیا وہ یہ کہ بیان کس کے بارے میں ہے۔ اس بابت تھوڑی گفتگو کرتے ہیں۔ ہمارا خیال ہے کہ اس انداز سے اس معاملے کو دیکھنا غیر ضروری پیچیدگیاں پیدا کر رہا ہے۔ ضروری نہیں کہ کسی شخصیت کا بیان کسی دوسری شخصیت کے ہی بارے میں ہو۔ ایسا بھی ہو سکتا ہے کہ ایک سے زائد شخصیات یا ایک سے زائد پارٹیوں کے بارے میں بیان ہو، کسی منصوبے کا بیان ہو، کسی واقعے کا بیان ہو، یا کسی بیان کی صفائی ہو۔ لہٰذا یہاں ایسی کوئی ریلیشنشپ ایپلیکیشن کی افادیت کو محدود کر دے گی یا پھر اس کی پیچیدگی کو بڑھا دے گی۔ واضح طور پر یہاں نہ صرف "مینی ٹو مینی" بلکہ "پالی مارفک ایسو سئیشن" کی بو آ رہی ہے۔ ایک سہل طریقہ یہ ہو سکتا ہے کہ جب بھی کسی ایک ایٹریبیوٹ میں ایک سے زائد ویلیوز جگہ بنانے لگیں اور بعض حالات میں وہ خالی رہ جائے تو سمجھنا چاہیے کہ یہ ایٹریبیوٹ اس ٹیبل سے براہ راست متعلق نہیں ہے، بلکہ اس کی علیحدہ شناخت ہونی چاہیے کیوں کہ ون ٹو مینی یا مینی ٹو مینی ریلیشنشپ کا جنم ہو رہا ہے۔ کئی دفعہ ایک علیحدہ اینٹٹی ٹیبل سے کام بن سکتا ہے جبکہ بعض دفعہ پالی مارفک ایسوسئیشن کے لیے تیار ہونا پڑ سکتا ہے۔ :) :) :)

پھر واپس بیانات کے ٹیبل کی طرف چلتے ہیں اور زمرے کی بات کرتے ہیں۔ عموماً ایسا ہوتا ہے کہ ایک ہی بیان ایک سے زائد زمروں سے متعلق ہو، لیکن پہلے سے طے شدہ زمرے مع ذیلی زمرے مواد کی براؤزنگ کو سہل بناتے ہیں۔ لہٰذا کئی دفعہ ٹیگس کی مدد سے ایک ہی بیان کو کئی زمروں کے ساتھ جوڑنا کافی ہوتا ہے لیکن علیحدہ سے زمروں کا ٹیبل بنانا اور ان میں "سیلف رفرینسنگ ریلیشنشپ" کی مدد سے ذیلی زمروں کا شجر بنانا ایک مناسب فیصلہ ہو سکتا ہے۔ لیکن زمروں کو بیانات کے ٹیبل میں شامل کرنے کے بجائے علیحدہ رکھنا اور "ون ٹو مینی ریلیشنشپ" کی مدد سے بیانات سے جوڑنا درست فیصلہ ہوگا۔ ٹیگس کو بہر صورت علیحدہ اینٹٹی کے طور پر علیحدہ ٹیبل میں رکھنا چاہیے اور "مینی ٹو مینی ریلیشنشپ" کی مدد سے جوڑنا چاہیے۔ ٹیگ کے لیے کاما سیپریٹیڈ لسٹ کا استعمال تلاش کی قوت کو متاثر کرے گا اور دیگر پیچیدگیاں بھی پیدا کرے گا۔ اگر عنوان با معنی ہو تو وہ اپنے آپ میں ایک طرح کی زمرہ بندی کا کام کرتا ہے اور تلاش کو بہت مثبت انداز میں متاثر کرتا ہے، خاص کر فل ٹیکسٹ سرچنگ کی امپلیمینٹیشن کے ساتھ۔ :) :) :)

ایسے کسی نظام میں سب سے اہم بات یہ ہوتی ہے کہ صارفین کو ایک مواد سے دوسرے مواد کی طرف کیسے راغب کیا جائے۔ اس کے لیے سب سے اہم بات یہ ہے کہ ایک مواد کے ساتھ دوسرے متعلقہ مواد پیش کیے جائیں۔ یہ متعلقہ مواد کسی بیان کا جواب ہو سکتا ہے، اس کے موافق بیان ہو سکتا ہے، مشترک ٹیگ والا بیان ہو سکتا ہے، مخالف بیان ہو سکتا ہے، اس شخصیت کے دیگر مشہور بیانات ہو سکتے ہیں۔ ان ساری چیزوں کے لیے علیحدہ ریلیشنشپ ٹیبل ہونے چاہئیں، ان تعلقات کو فرسٹ کلاس اینٹٹی ٹیبلز میں شامل کرنا اچھا اسکیما ڈیزائن نہیں کہا جائے گا۔ :) :) :)

واضح رہے کہ بیانات کے ساتھ اکثر کئی متعلقہ ریسورسیز موجود ہوتے ہیں مثلاً تصاویر، بینر، ویڈیو، آڈیو وغیرہ جو کہ ڈیٹا کی صورت میں بھی ہو سکتے ہیں اور کسی تھرڈ پارٹی سروس کے تحت ہوسٹیڈ بھی ہو سکتے ہیں جن کا یو آر ایل دستیاب ہو۔ ان اضافی وسائل کو ایک علیحدہ ٹیبل میں رکھا جا سکتا ہے اور ان کی نوعیت وغیرہ کے لیے ٹائپ ایٹریبیوٹ متعارف کرایا جا سکتا ہے یا پھر مختلف النوع مواد کے لیے پالی مارفک ایسوسئیشن کا سہارا لیا جا سکتا ہے۔ :) :) :)

چونکہ یہ لڑی محض ڈیٹا بیس اسکیما ڈیزائن پر گفتگو کے حوالے سے ہے اس لیے ہم اس سے زیادہ تفصیل کے ساتھ بیان غیر ضروری سمجھتے ہیں۔ واضح رہے کہ ڈیٹا بیس سے ہمارا تعلق بس اتنا ہی ہے جتنا ایک ریسرچر اور ڈیویلپر کا ہو سکتا ہے، ہم کوئی پیشہ ور ڈی بی اے نہیں۔ لہٰذا یہ ساری باتیں ہمارے اپنے مشاہدے اور تجربے کی بنیاد پر کہی گئی ہیں۔ ان احباب کی رائے یقیناً مقدم ہو گی، ڈیٹا بیس جن کی اسپشلائزیشن ہے۔ :) :) :)
 
ماشاءللہ ابن سعید کا بیان پڑھ کر پانی کا ایک گلاس پینے کی سخت حاجت محسوس ہو رہی ہے۔

باتیں بہت ساری کی گئی ہیں اور کافی صحیح بھی ہیں مگر ایک نئے طالب علم کے لیے اتنی باتوں کو ایک ساتھ ہضم کرنا کافی مشکل ثابت ہوگا ، میں خود تھک گیا اتنی لمبی پوسٹ پڑھتے پڑھتے اور بے اختیار سیاست کی ملکہ مہوش علی کی یاد تازہ ہو گئی۔ :)

میں پھر اپنی پرانی فرمائش پر آؤں گا کہ ایک ٹیبل جس میں دس عدد ریکارڈ ہوں اس کو پوسٹ کیا جائے اور پھر اس پر مختصر پوسٹ میں بحث کی جائے ، اگر نکات زیادہ ہوں تو مختلف پوسٹس میں ذکر کیا جائے تاکہ اقتباس لے کر گفتگو کرنے میں آسانی ہو۔
 

محمداحمد

لائبریرین
ماشاءللہ ابن سعید کا بیان پڑھ کر پانی کا ایک گلاس پینے کی سخت حاجت محسوس ہو رہی ہے۔

باتیں بہت ساری کی گئی ہیں اور کافی صحیح بھی ہیں مگر ایک نئے طالب علم کے لیے اتنی باتوں کو ایک ساتھ ہضم کرنا کافی مشکل ثابت ہوگا ، میں خود تھک گیا اتنی لمبی پوسٹ پڑھتے پڑھتے اور بے اختیار سیاست کی ملکہ مہوش علی کی یاد تازہ ہو گئی۔ :)

میں پھر اپنی پرانی فرمائش پر آؤں گا کہ ایک ٹیبل جس میں دس عدد ریکارڈ ہوں اس کو پوسٹ کیا جائے اور پھر اس پر مختصر پوسٹ میں بحث کی جائے ، اگر نکات زیادہ ہوں تو مختلف پوسٹس میں ذکر کیا جائے تاکہ اقتباس لے کر گفتگو کرنے میں آسانی ہو۔
بہت مشکل سے 10 بیانات اکھٹے کیے ہیں۔ سب کے سب ڈان نیوز سے اخذ کئے ہیں۔

یہاں دیکھ سکتے ہیں آپ لوگ۔
 
Top