আমার সহকর্মী একটি 96 টি কলাম এসকিউএল টেবিল তৈরি করেছেন


23

এখানে আমরা 2010 এ আছি, 4 বা 5 বছর বা অভিজ্ঞতার সাথে সফটওয়্যার ইঞ্জিনিয়াররা এখনও 96 টি ফ্র্যাকিং কলাম সহ টেবিলগুলি ডিজাইন করছেন।

আমি ওকে বলেছিলাম এটি দুঃস্বপ্ন হতে চলেছে।
আমি তাকে দেখিয়েছি যে মাইএসকিউএলকে সি # এর সাথে ইন্টারফেস করতে আমাদের কাছে অর্ডিনালগুলি ব্যবহার করতে হবে।
আমি বুঝিয়েছি যে সারিগুলির চেয়ে বেশি কলামযুক্ত সারণীগুলি একটি বিশাল গন্ধ।

তবুও, আমি "এটি এভাবে সহজ হতে চলেছে" পেয়েছি।

আমার কি করা উচিৎ?

সম্পাদনা করুন *

এই সারণীতে সেন্সরগুলির ডেটা রয়েছে। ডায়নামিক_ডি
1
এক্স
ডায়নামিক_ডি 1 ওয়াই সহ আমাদের সেন্সর 1 রয়েছে
[...]

গতিশীল_ডি 6
এক্স ডায়নামিক_ডি 6 ওয়াই
[...]

সম্পাদনা 2 *

আচ্ছা, অবশেষে আমি সেই কাজটি ছেড়ে দিয়েছি। এটি যখন অন্য প্রোগ্রামার কয়েক মাস ধরে অন্ধকার হয়ে যায় তখন এটি একটি চিহ্ন, যখন ম্যানেজমেন্ট বুঝতে পারে না যে এটি একটি সমস্যা is


5
উঘ, পাশাপাশি অন্ধকার যুগ হতে পারে। লোকেরা কখন ডাটাবেস ব্যবহার করতে শিখবে?
কেওসপ্যান্ডিয়ন

49
আপনার বিকল্প কি? আপনার কাছে যদি সমাধান না থাকে তবে আপনি কেবল সমস্যার উপরেই হতাশ হয়ে উঠতে পারবেন না।
TGnat

1
আমি প্রতিটি সারিতে কী সঞ্চিত তা সম্পর্কে আগ্রহী।
মেটালমাইকস্টার

1
@ চাওসপ্যান্ডিওন, traditionalতিহ্যবাহী ডাটাবেস ব্যবহারের খুব দীর্ঘ সময় পরে এটি নিজেই একটি ডিজাইনের গন্ধ।
উদাহরণস্বরূপ

3
আচ্ছা তিনি আপনার ডেটাবেসকে স্পষ্টতই ডিজাইনের কাজ করছেন। আমাদের কাছে কেবলমাত্র 4 বার্চার কলাম সহ একটি একক টেবিলের সাথে একটি ডাটাবেস ছিল: ক্লাস, ওবিজেইসিটি, অ্যাট্রিবিউট, মান UE সমস্ত তথ্য সেখানে মাপসই। যে বীট! :)
লুকাশ এদার

উত্তর:


32

সম্ভবত তিনি কোনও ভালো কারণে, যেমন পারফরম্যান্স বা আরওআইয়ের জন্য তা করেছিলেন?

করণীয় সেরা, তাকে প্রশ্ন করা হয়। একটি নির্দিষ্ট পরিমাণ "কেন" দিয়ে আপনি অবশ্যই তাকে বুঝতে পারবেন তিনি সম্ভবত নিজেই ভুল (যদি তিনি সত্যিই থাকেন)।

আমার নিজের একটি মামলা ছিল যা পারফরম্যান্সের সাথে সম্পর্কিত নয় তবে বিনিয়োগের উপর রিটার্ন (আরওআই)। আমার কাছে একটি টেবিল ছিল যাতে সপ্তাহের প্রতিটি ঘন্টা (এক সপ্তাহে 168 ঘন্টা) জন্য একটি নির্দিষ্ট মান ছিল। আমাদের কাছে একটি অবজেক্টহওয়ার টেবিল তৈরির পছন্দ ছিল যা মানটি ধারণ করে তবে অবজেক্টের কী এবং ঘন্টা সংখ্যার দিন সংখ্যা। তবে আমরাও ১ values৮ টি মানকে সারিবদ্ধভাবে রাখার সুযোগ পেয়েছি। সম্ভবত আপনার কলেজটি কী করেছে like

বিকাশকারী উভয় সমাধান অনুমান। সাধারণ সমাধান (168 কলাম) এর ভাল ডিজাইন করা অংশটির তুলনায় অনেক সস্তা ছিল। গ্রাহকের জন্য ঠিক একই ফলাফলের জন্য।

সুরক্ষার মতো আরও গুরুত্বপূর্ণ স্টাফগুলিতে আমাদের প্রচেষ্টা ফোকাস করার জন্য আমরা সহজ / সস্তার সমাধানের দিকে যাবার সিদ্ধান্ত নিয়েছি।

ভবিষ্যতে আমাদের উন্নতি করার অনেক সুযোগ থাকবে। বাজারে সময়টা আমাদের জন্য সেই সময়ের অগ্রাধিকার ছিল।


3
আমি সম্মত হই - 'কেন' এর অতিরিক্ত প্রসঙ্গ ছাড়াই, কলামগুলির সংখ্যা আসলেই গুরুত্বপূর্ণ নয়। বৈধভাবে ট্র্যাক করার জন্য 96 টি জিনিস থাকতে পারে ... বা, তিনি ডেটাগুলির 'অ্যারে' (নাম_1, নাম_2) এর জন্য অ্যাডিশনাল কলামগুলি ব্যবহার করছেন যা অন্য সারণীতে বিভক্ত হওয়া উচিত।
গ্র্যান্ডমাস্টারবি

ওহ, আপনি আমাকে একটি জিনিস মনে রাখবেন ... আমি আমার উত্তরে এটি যুক্ত করব

1
"নরমালাইজড" অবশ্যই "ভাল ডিজাইন করা" বোঝায় না। আপনি এখানে বর্ণিত ডেনোরালাইজেশনকে বিবেচনা করব, একেবারে সূক্ষ্ম ডিজাইনের সিদ্ধান্ত হতে।

1
আমি @ গ্র্যান্ডমাস্টার বি এর সাথে পুরোপুরি একমত কলামের সংখ্যা এমন কিছু নয় যা স্বাধীনভাবে বিচার করা যায়। এমন অনেক সময় আছে যখন কোনও জিনিস সম্পর্কে প্রচুর পরিমাণে সম্পর্কিত ডেটা অবশ্যই সংরক্ষণ করা উচিত। লোকেরা কী করবে? একটি ট্যাগ-ডেটা টেবিল (id, tag, value)এবং INSERTনব্বই বিজোড় সারি তৈরি করুন? যদি তথ্যটি কোনও টেবিলের অন্তর্ভুক্ত থাকে এবং ন্যায়সঙ্গত হয় তবে কলামটি স্থির থাকে, যদি না এটি কোনও ভয়াবহ পারফরম্যান্স সমস্যার সৃষ্টি করে।
অর্বলিং

নির্দিষ্ট অ্যাপ্লিকেশনের জন্য +1 ডেনরমালাইজেশন প্রয়োজনীয়। আমি যুক্তি দেব যে ডেটাবেসগুলি স্প্রেডশিট নয়। কেবলমাত্র তাদের অনুরূপ সারণী বিন্যাসের অর্থ এই নয় যে ডেটাবেসগুলি মানব-পঠনযোগ্য হওয়া উচিত। এগুলি ডেটা ব্যাক-এন্ড স্টোরেজ এবং এ জাতীয় হিসাবে ব্যবহার করা উচিত।
ইভান প্লেইস

17

দুর্ভাগ্যক্রমে আপনার গড় বিকাশকারী এখনও আপেক্ষিক ডাটাবেসগুলিকে বড় ফ্ল্যাট ফাইল হিসাবে ভাবেন। যদি কোনও ব্যক্তি দায়িত্ব গ্রহণ করে এবং উদাহরণের সাথে নেতৃত্ব দেয় তবে তারা আরও ভালতর হওয়ার একমাত্র উপায়। মাত্র সম্প্রতি আমি আমাদের ডাটাবেসে একটি গুরুত্বপূর্ণ স্কিমার একটি নতুন পুনর্নির্মাণের নেতৃত্ব দিয়েছি এবং সাধারণ সম্পর্কযুক্ত অনুশীলনগুলি অনুসরণ করেছি। হঠাৎ আমাদের সঞ্চিত সমস্ত প্রক্রিয়াই আরও মার্জিত ছিল এবং যথাযথ সূচীগুলির সমস্ত এটির জন্য জন্মেছিল বলে মনে হয়েছিল place অহং দ্বারা চালিত বিকাশকারী আপনাকে প্রমাণ ছাড়াই কখনও বিশ্বাস করবে না।


2
কখনও কখনও প্রমাণিত হয় এমন কাউকে বোঝাতে যে ইতিমধ্যে নিশ্চিত হয়ে গেছে যে তারা সঠিক। +1
ক্রিস

1
সত্যি? গড় বিকাশকারী এটি করে? বাবা।
ওয়েববিডেভ

সম্ভবত বড় ফ্ল্যাট ফাইলগুলির জন্য তাদের প্রথম স্থানে প্রয়োজন হয়;)?
কাজ

অহঙ্কার অগত্যা নয়, তবে কেন আপনার পরিবর্তন হবে? এটি ব্যবহারে ব্যয় করা সময় এবং প্রচেষ্টার জন্য "অর্থ প্রদান" করার জন্য নতুন জিনিসগুলি অবশ্যই আরও ভাল হতে হবে।

-1 একটি ডেনারমালাইজড ডেটা টেবিল ব্যবহারের জন্য পুরোপুরি বৈধ কারণ রয়েছে। উদাহরণস্বরূপ, যদি আপনার অনেকগুলি সার্ভার জুড়ে এটির তীক্ষ্ণ প্রয়োজন হয় কারণ ডেটাসেটটি খুব বড় হয়ে গেছে বা আপনার খুব কম বিলম্বিত অ্যাক্সেসের সময় প্রয়োজন (যোগ দিয়ে বিদায় জানাতে বিদায় দিন)।
ইভান প্লেইস

11

স্ট্যাকওভারফ্লোতে এর আগে অনুরূপ কিছু আলোচনা হয়েছিল ।

সাধারণত, একটি টেবিলের উপর কলাম প্রচুর থাকার না অগত্যা মানে আপনি কিছু ভুল করছ, কিন্তু তাই আপনি নকশা এ ঘনিষ্ঠভাবে চেহারা এটা স্পষ্টভাবে কিছু লাল পতাকা বাড়াতে হবে। কখনও কখনও বিশাল টেবিলটি সঠিক পছন্দ, তবে অনেক ক্ষেত্রে অন্যান্য বিকল্প আরও বোঝায়। উদাহরণস্বরূপ, একটি বিকল্প হ'ল স্টোরেজটিকে দুটি টেবিলের মধ্যে ভাগ করা: একটি সারণী যা আপনার সত্তা সনাক্ত করে এবং অন্য সারণী যা কার্যকরভাবে সেই সত্তাগুলির বিবরণী বিশিষ্টতার মূল / মানের দোকান (যাতে আপনি সর্বাধিক r৯ টি সারি দিয়ে শেষ করতে পারেন)প্রতিটি সত্তার জন্য)। অন্যান্য নকশা পাশাপাশি সম্ভব। আপনার সতীর্থের সাথে কথা বলুন এবং ডেটা নরমালাইজেশন, কোড রিডেবিলিটি এবং রক্ষণাবেক্ষণের উপর নির্ভর করে কোন সমাধানটি আরও ভাল is (পূরণ করতে 96 টি বৈশিষ্ট্য সহ বিবৃতি সন্নিবেশ করান?), পারফরম্যান্সের প্রভাবগুলি, কতবার নতুন অ্যাট্রিবিউট (কলাম) যুক্ত হতে পারে বা পরিবর্তন করা যায়, কতটা বিচ্ছিন্ন ডেটা (96 টি কলামের মধ্যে কতটি পূরণ হবে এবং কতগুলি শূন্য থাকবে?), এবং প্রতিবেদনের উপর জড়িত is যে কোনও বিকাশকারীকে তাদের নকশাগুলির সিদ্ধান্তগুলি যুক্তিসঙ্গতভাবে প্রমাণ করতে এবং দেখানো যায় যে ব্যয় / উপকারের বাণিজ্য বন্ধ রয়েছে (এবং হ্যাঁ, প্রতিটি নকশার সিদ্ধান্তটি একটি বাণিজ্য বন্ধ) তাদের পক্ষে রয়েছে। আপনার দায়িত্ব অভিযোগ বা সমালোচনা করা নয়, বিকল্প প্রস্তাব দেওয়া এবং নিশ্চিত হওয়া নিশ্চিত করা যে তারা এই বিষয়গুলির মাধ্যমে চিন্তা করেছেন।


1
কী ভ্যালু স্টোরগুলি প্রায় অলওয়েস পারফোমেন্স এবং কোয়েরিবিলিটির জন্য সবচেয়ে খারাপ পছন্দ।
এইচএলজিইএম


9

এটি কি 96 কলাম দিয়ে স্বাভাবিক করা যায়? এটি কি প্রথম, দ্বিতীয়, তৃতীয় ইত্যাদি এনএফ সন্তুষ্ট করে?

এটি হতে পারে যে সত্ত্বায় আপনার পৃথক 96৯ টি আলাদা বৈশিষ্ট্য রয়েছে।

অন্যথায়, তাকে সরল আলাপে জো সেলকো পড়তে বাধ্য করুন


5

এটি পুরোপুরি নির্ভর করে।

সাধারণকরণ / অস্বাভাবিক ডিবি ডিজাইনের উভয়ই এর সুবিধা এবং অসুবিধা রয়েছে।

আমার প্রথম ডিবি ডিজাইনটি সৌন্দর্যের একটি সাধারণ জিনিস ছিল। এটি নমনীয় এবং এক্সটেনসিবল ছিল। কোড লেভেলটি মোকাবেলা করা আমার ছাড়া অন্য কারও পক্ষে অবিশ্বাস্য পিটাও ছিল এবং এটি আমার জন্য একটি হালকা পিটা ছিল IT

আমার পরবর্তী প্রচেষ্টাটি একটি সমতল কাঠামো ছিল এবং এটি ছিল (ক) অনেক দ্রুত এবং (খ) এর সাথে কোড করা খুব সহজ। এবং এটি পরে আরও স্বাভাবিক করার পক্ষে বিশাল কাজ হবে না।

সুতরাং এটি গন্ধ হতে পারে তবে অন্য কোনও ডিবি ডিজাইনের গন্ধগুলির নিজস্ব আনন্দদায়ক অ্যারে থাকবে।


+1 এটি প্রায়শই দেখানোর জন্য, সঠিক উপায় নেই।
Orbling

3

প্রযুক্তিগত aboutণ সম্পর্কে এই নিবন্ধটি পড়তে তাকে পান । তিনি যদি এখনও এটিকে ধরে রাখার সিদ্ধান্ত নেন তবে অন্তত আপনি গঠনমূলক মতামত দিয়েছেন।


1

(সম্পাদিত) পোস্টটি দেখলে বোঝা যাচ্ছে যে এটি একটি খারাপভাবে অস্বীকৃত টেবিল। তোমার কি করা উচিত? আমি এটি দেখতে পাওয়ায় আপনার কাছে কয়েকটি বিকল্প রয়েছে:

  1. কীভাবে তার কাজ করবেন তা শিখতে আপনার সহকর্মীর সাথে চিৎকার করুন। উত্পাদনশীল হওয়ার পক্ষে অসম্ভব তবে সম্ভবত অন্য সহকর্মীদের আপনার সাথে জগাখিচুড়ি না করতে রাজি করবেন। চিৎকারের পাগল হিসাবে খ্যাতি দরকারী হতে পারে (আমি কীভাবে জানি আমাকে জিজ্ঞাসা করবেন না)।
  2. বসকে চিৎকার করুন যে সহকর্মী একজন বোকা। বিপর্যয়ের পূর্বাভাস দিন, তারপরে সক্রিয়ভাবে নাশকতা প্রকল্পে কাজ করুন। অযোগ্য সহকর্মীর দ্বারা উত্পাদিত ডাটাবেস ডিজাইনে সমস্ত কিছুকে দোষ দিন। সরাসরি যেতে পারে ...
  3. ছাড়ো। সেরা যদি এটি আপনার ধারণা, তবে # 2 অনৈচ্ছিক পদত্যাগের দিকে পরিচালিত করতে পারে। ক্ষুব্ধ বস এবং / অথবা সহকর্মীদের দ্বারা উইন্ডো থেকে ছুঁড়ে ফেলা হলে ডুবুরি / কংক্রিট / নুড়িগুলিতে হাঁটুতে স্ক্র্যাপ না করার চেষ্টা করুন। (নোট পূর্বে অধ্যয়ন এখানে গুরুত্বপূর্ণ যে। বেঁচে থাকার হ্রাস আপনার সম্ভাবনা লক্ষণীয়ভাবে যদি নেতাদের অফিস একতলা উপরে হয় এবং আপনি নিজেকে শারীরিক জানালা দিয়ে চালিত হচ্ছে। এগিয়ে পরিকল্পনা !! )
  4. প্রচুর পরিমাণে পান করুন - বা, ক্যালিফোর্নিয়ায় চলে যান এবং হালকা আপ করুন (অনুমান 19 (বা যাই হোক না কেন) পাস হয় ধরে)। সহকর্মীদের প্রতি দৃষ্টিভঙ্গির উন্নতি করার জন্য কয়েকটি শট এবং ডুবির মতো কিছুই নয় (বা আমি শুনেছি)। (জনসেবার ঘোষণা: বাচ্চাদের! এই ব্যক্তিরা পেশাদার! ঘরে বসে এটি চেষ্টা করবেন না!)

শেয়ার করুন এবং উপভোগ করুন।


আমি # 4 চেষ্টা করেছিলাম তবে এখন সোমবার এবং কাজের জায়গায় পৌঁছানোর পরে সবকিছু ফিরে আসবে =)
এরিক

এক পয়েন্ট পড়ুন। সম্মত। পয়েন্ট দুইটি পড়ুন, আমার উত্সাহটি বাতিল করুন। সিরিয়াসলি, ডুড?
জোড়ান পাভলভিক

0

আমি এখানে একটি অঙ্গ নিয়ে যাচ্ছি এবং ধরে নেব যে তিনি এই "নতুন" টেবিলটি নিয়ে কাজ করার জন্য প্রচুর কোড কেটে ফেলবেন paste

যদি তা হয় তবে আপনি সম্ভবত কোনও অতিরিক্ত প্রযুক্তিগত debtণ গ্রহণ করবেন না। তিনি কেবল তার প্রযুক্তিগত debtণের অংশ ভাগ করে নিয়েছেন এবং কোনও একরকম মহৎ একীকরণের পথে এগিয়ে যেতে পারেন।

যদি সে কিছু চেষ্টা করে ও সত্য পদ্ধতি পেয়ে থাকে যার জন্য একটি 96 কলামের জিনিস প্রয়োজন হয় তবে এই বিশেষ ক্ষেত্রে এটি অন্যভাবে করার প্রকৃত সুবিধাগুলি বিবেচনা করুন। যদি কেউ না থাকে তবে সন্দেহের সুযোগটি তাকে দিন, তবে তাকে স্মরণ করিয়ে দিন যে পরের বার আপনি যখন পরিকল্পনার পর্যায়ে আসতে চান তিনি পরের বার যখন তিনি আমাদের সকলকে একটি সুন্দর বোবা পদক্ষেপ হিসাবে বিবেচনা করবেন তখন তা তৈরি করেন।


0

স্কিমার অ্যাক্সেস করতে চলেছে এমন অ্যাপ্লিকেশন ব্যবহারের ক্ষেত্রে সম্পূর্ণ নির্ভর করে, এক সাথে কী পরিমাণ ডেটা দরকার হয়। কোনও উপায়ে এটি টেবিলের নকশাকে ন্যায়সঙ্গত করতে পারে।


0

আমি তাকে পাথরের যুগে প্রেরণ করব এবং তাকে ফাইলগুলি ব্যবহার করতে বাধ্য করলাম বা কমপক্ষে কীভাবে ব্লবগুলি ব্যবহার করতে হবে তা শিখিয়ে দেব।

সত্যই, c৯ কলাম রয়েছে ... এটি ঠিক, সঠিক নয়। হতে পারে একটি ওআরএম সাহায্য করবে। (যদি না আপনার পারফরম্যান্সের প্রয়োজন হয় তবে আপনারা তখন ডিবি কে এটি পরিচালনা করার জন্য আরও ভাল বোঝেন এমন কোনও ব্যক্তি থাকতে পারেন)


0

আমি এর জন্য সকলকে জাহান্নামে পরিণত করতে যাচ্ছি, তবে ঠিক এই কারণেই আমি আমার দোকানে ডেটা মডেলিং এবং সফটওয়্যার ইঞ্জিনিয়ারিংয়ের দায়িত্বগুলি পৃথক করেছিলাম। প্রোগ্রামাররা সেটগুলির ফর্মগুলিতে খুব কমই মনে হয় এবং পরিবর্তে ডেটা ব্যবহারের দিকে মনোযোগ দেয় (তৃতীয় সাধারণ ফর্মটি বজায় রাখার পরিবর্তে, সূচকগুলি বা অন্যান্য ডিবি কর্মক্ষমতা সম্পর্কিত সমস্যাগুলি)। খাঁটি ডেটা মডেলিং / আর্কিটেকচারাল ইস্যুতে আমাদের অনভিজ্ঞতার ভিত্তিতে প্রোগ্রামার হিসাবে আমরা সেই ডিবি আর্কিটেকচারাল সিদ্ধান্তগুলির তুলনায় আমাদের আরও বেশি দ্বিমত পোষণ করি। আইএমএইচও, আমি পছন্দ করি যে আমার কাছে ডেটা আর্কিটেক্ট এবং মডেলার রয়েছে যা প্রয়োজনীয়তা নেয়, টেবিল / প্রক্স / ইত্যাদি তৈরি করে এবং আউটপুটগুলি আমার কাছে রেখে দেয়।

যদিও এই নকশার প্রকৃত কারণগুলি না জেনেও (আমি আবহাওয়া সেন্সরগুলিতে কাজ করেছি যেগুলির মধ্যে ৯৯ টিরও বেশি বিভিন্ন সংখ্যাসূচক আউটপুট = বড় সংখ্যক টেবিল কলাম রয়েছে) ... এটি কেবল পোষ্যের শাঁস বের করার মতো মনে হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.