ফাইলের নামে মেটাডেটা তথ্য সঞ্চয় করা কি খারাপ অভ্যাস? আরও ভাল সমাধান?


13

আমি লক্ষ্য করেছি যে আমি কোথায় কাজ করি লোকেরা ফাইলের নামগুলিতে তথ্য সংরক্ষণ এবং ফাইলের নামগুলি বিশ্লেষণে আগ্রহী।

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

এটা খারাপ অভ্যাস হিসাবে বিবেচনা করা হয় বা না?

কোনও ধরণের মেটাডেটার ভিত্তিতে কোনও ফাইল সিস্টেম থেকে ফাইলগুলি পুনরুদ্ধার করার জন্য অন্যান্য গৃহীত সমাধানগুলি কী কী?


ফাইলনেমে ঠিক কী সংরক্ষণ করা হচ্ছে তার উপর এটি অনেক কিছু নির্ভর করে। আপনি আমাদের কিছু উদাহরণ দিতে পারেন?
টি। সর

উত্তর:


14

হ্যাঁ আমি মনে করি এটি খারাপ অভ্যাস। এটি সমস্ত ধরণের সমস্যার সাপেক্ষে - উদাহরণস্বরূপ দৈর্ঘ্য সীমা, এনকোডিং সমস্যা এবং সদৃশ ডেটার কারণে দ্বন্দ্ব।

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

এটি কী-মান স্টোরগুলিতে তথ্য রাখার বা নেমস্পেসিং কীগুলির ধারণার সাথে কিছুটা অনুরূপ। আমি মনে করি এটি ততক্ষণ ঠিক আছে যতক্ষণ আপনি এটি কেবল নেমস্পেসে ব্যবহার করেন এবং তাত্ক্ষণিক অনুসন্ধান করেন - পার্সেবল তথ্য সরবরাহ করার জন্য মূল উপাদানগুলি সেখানে নেই। আপনার যদি সেই তথ্য দরকার হয় তবে এটিকে মানটিতে নকল করুন (উপরের ক্ষেত্রে ফাইল) file


3
আপনি অন্ত্র পয়েন্ট উত্থাপন করছেন। তবে এমন পরিস্থিতি রয়েছে যখন তথাপি এই ফাইলটির নাম রাখা উচিত। মেল সংযুক্তিগুলি সম্পর্কে ভাবুন যা নিয়ম-ভিত্তিক ফ্যাশনে রাউটেড বা প্রক্রিয়াজাত করতে হয়। যদি অনেক সমান্তরাল প্রক্রিয়াগুলির মাস্টার ফাইলটি পরিবর্তন করতে হয় তবে এটি একটি বাধা হয়ে উঠতে পারে।
এক্সেল কেম্পার

একটি ডেটাবেস বিকাশকারী হিসাবে, আমি স্বাভাবিকভাবেই ম্যানিফেস্ট ফাইলের পরিবর্তে একটি ডাটাবেস ব্যবহার করার কথা ভাবি (যে কারণে আমি বিকল্প পদ্ধতির জন্য এখানে জিজ্ঞাসা করি তার একটি)। এটি একযোগে অ্যাক্সেস সমস্যার সমাধান করবে, তবে এটি আরও জটিল সমাধান।
wobbily_col

1
@wbbily_col, আপনি যে সিস্টেমটি ব্যবহার করেন তার উপর নির্ভর করে বর্ধিত ফাইল বৈশিষ্ট্যগুলির জন্য সমর্থন থাকতে পারে ।
Hellion

@ অ্যাক্সেলকিম্পার কেবলমাত্র এমন অনেক তথ্য রয়েছে যা আপনি কোনও নামে ফিট করতে পারেন। নাম এবং লেখকের চেয়ে আরও মেটাডেটা আছে।
Tulains Cordordova

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

5

প্রথমত, মেটাডেটা একটি ঝাপসা ধারণা।

এটি বলেছিল যে ফাইলগুলিতে মেটাডেটার অনেকগুলি ইতিমধ্যে বিদ্যমান:

  • গ্রন্থাগারের সংস্করণ সংখ্যা
  • চিত্রগুলির তারিখ এবং সময় বা কমপক্ষে ক্রম সূচক
  • ফাইলের ধরণ যা কোন অ্যাপ্লিকেশনটি ফাইল খোলার উচিত তা ট্রিগার করে
  • আপনার হোম ডিরেক্টরি নাম, যা আপনার সেশন ব্যবহারকারী নাম হতে হবে

তবুও, এই সংক্ষিপ্ত তালিকাটি অনুশীলনের পক্ষে পক্ষে যুক্তি নয়।

বিকল্পগুলি হ'ল:

  • উদাহরণস্বরূপ অ্যাপল পুরাতন এইচএফএসের মতো এফএস স্তরে মেটাডেটা হ্যান্ডেল করুন
  • ফাইলগুলিতে মেটাডেটা যেমন ইমেজের জন্য এক্সিফ বা শব্দের জন্য আইডি 3 রাখুন
  • বেশিরভাগ মিডিয়া ম্যানেজারের মতো মেটাডেটা অন্য কোনও ফাইলে বা একটি ডাটাবেসে রাখুন।

5
সবকিছুই একটি ঝাপসা ধারণা। এমনকি "অস্পষ্ট", "ধারণা" এবং "সবকিছু" অস্পষ্ট ধারণা।
তুলিনাস কর্ডোভা

3

মনে হচ্ছে আপনার একটি ডাটাবেস দরকার।

ফাইলের নামে ব্যবহারকারীর ডেটা রাখার সাথে সুরক্ষার প্রচুর সমস্যা রয়েছে। ধরা যাক যে প্রতিটি ব্যবহারকারীর জন্য আপনার কাছে একটি ফাইল রয়েছে ("username.txt")। কেউ কীভাবে "../../..//../etc/passwd" ব্যবহারকারীর নাম নিবন্ধভুক্ত করে তা কীভাবে ঘটে আপনি কীভাবে ব্যবহারকারীর ইনপুট ফিল্টার করছেন তার উপর নির্ভর করে।

ডেটাবেস ফ্রেমওয়ার্কগুলি আপনাকে কখনও কখনও ব্যবহারকারীদের ইনপুটকে স্যানিটাইজিংয়ে সহায়তা করবে।


প্রকৃতপক্ষে, অনেক অপারেটিং সিস্টেম ব্যবহারকারীর নাম ডিরেক্টরি নামে সংরক্ষণ করে, যাকে হোম ডিরেক্টরি বলা হয় ।
mouviciel

কারন কিছু সংস্থার সফ্টওয়্যার স্ট্যাকের নীচে থাকতে হবে। এর অর্থ এই নয় যে প্রত্যেককে সেই স্তরে কাজ করতে হবে। আমি ডাটাবেসের যোগ্যতার বিষয়ে তর্ক করতে যাচ্ছি না, কারণ প্রোগ্রামাররা এগুলিকে 50 বছরেরও বেশি সময় ধরে ব্যবহার করে চলেছে।
এরিক উইম্বারলে

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

2

না ... ভাল .. অগত্যা।

এতক্ষণ আপনার যদি একটি কঠোর সম্মেলন এবং সাধারণ পার্সিং এবং বৈধকরণের অর্থ (স্ক্রিপ্ট, গ্রন্থাগার ইত্যাদি) সহজেই পাওয়া যায় আপনি যেতে ভাল।

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

যদি মেটাডেটা সহজ হয় তবে ফাইল নামকরণের একটি কনভেনশন সঠিকভাবে বোঝায় যে কিছু করার দরকার নেই। এটি খুব সহজ সরঞ্জাম এবং স্ক্রিপ্ট দিয়ে শক্তিশালী করা যেতে পারে, কোনও ডাটাবেসের প্রয়োজন নেই, বিশেষায়িত কিছু অবকাঠামো মাত্র কয়েকটি স্ক্রিপ্ট এবং একটি নামকরণ কনভেনশন নেই।

আপনার প্রয়োজনের বাইরে যদি কিছু না থাকে এবং আপনার প্রয়োজনগুলি সহজ হয় তবে আমি এটি দিয়ে শুরু করব।

আপনার প্রয়োজনীয়তা এই সম্মেলনে প্রসারিত? এটি একটি যথাযথ মেটাডেটা ফাইল দিয়ে প্রসারিত করুন। আপনার পরে এইটির জন্য আরও ভাল অনুসন্ধানের প্রয়োজন? ফাইলগুলি অনুসন্ধান করার জন্য ইতিমধ্যে ভাল সমাধান রয়েছে যা আপনাকে যেখানে প্রয়োজন সেখানে পৌঁছে দেয়।

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

উপযুক্ত পর্যবেক্ষণের সাহায্যে লো প্রযুক্তির শক্তিকে কখনই অল্প মূল্য দেবেন না এটি আপনাকে দীর্ঘ পথ পেতে পারে।

এবং আপনার নিম্ন প্রযুক্তির সমাধানটি ছাড়িয়ে যাওয়ার সময় আপনি আপনার প্রয়োজনের জন্য নিখুঁত ব্যবস্থাটি বাস্তবায়নের জন্য সমস্ত অভিজ্ঞতা এবং প্রয়োজনীয়তা সংগ্রহ করবেন।


জড়তার শক্তিটিকে কখনই হ্রাস করবেন না। একটি কম প্রযুক্তি সমাধানকে আরও শক্তিশালী কিছুতে পরিবর্তন করা কেবল সেভাবে না শুরু করার চেয়ে আরও বেশি প্রচেষ্টা প্রয়োজন।
বেরিন লরিটস

1
@ বেরিনলরিটশ একই যুক্তি সমস্ত সমাধান, নিম্ন-প্রযুক্তি বা হাইটেকের ক্ষেত্রে প্রযোজ্য ... কেউ যুক্তি দিতে পারে যে হাইটেকের জন্য আরও বেশি সিস্টেমের আন্তঃনির্ভরশীলতার প্রয়োজন হয় বাস্তবে এই পরিস্থিতিটি সবচেয়ে খারাপ করে তোলে, সহজ নয়। এটি বলেছে, এমন এক প্রান্তে রয়েছে যেখানে একটি সাধারণ নিম্ন প্রযুক্তির সমাধান সম্পূর্ণরূপে বিকশিত উচ্চ প্রযুক্তির অংশের তুলনায় আরও বিশৃঙ্খলা হয়ে যায়।
নিউটোপিয়ান

1
হ্যাঁ, এবং আমি এখন একটি প্রকল্পে এরকম কয়েকটি উদাহরণ খুলেছি। নীচের লাইনটি এমন যে আরও বেশিবার ফাইল সিস্টেমের চেয়ে আরও শক্ততর ইন্টারফেস হওয়া দরকার। দুর্ভাগ্যক্রমে, বেশিরভাগ নিম্ন-প্রযুক্তি ব্যবস্থাগুলি আমার উত্তরাধিকার সূত্রে সেগুলিতে যথাযথ চিন্তাভাবনা বা ডিজাইন প্রয়োগ করা হয় না। আমি একদিকে যেমন ব্যতিক্রম গণনা করতে পারি।
বেরিন লরিটস

0

প্রথমে, আসুন আমরা একমত কি একটি ফাইল দিন হয় । একটি ফাইল হ'ল একটি প্যাকেজড ডেটা যা নামের সাথে পারমাণবিক ক্রিয়াকলাপ দ্বারা প্রেরণ, প্রাপ্ত, তৈরি এবং মোছা যায়।

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

ফাইলের নামটি মেটাডেটা ধরে রাখতে ব্যবহৃত হয় কারণ ক) এটি সর্বদা থাকে, খ) মেটাডেটা সর্বদা ফাইলের নামেই উপস্থিত থাকে (কমপক্ষে ফাইল এক্সটেনশনের ব্যবহারে), এবং গ) ফাইলের নাম চলন্ত চলাকালীন খুব অল্প অনুবাদ হয় under সিস্টেমের মধ্যে (কেস পার্থক্য, অক্ষর সেট সীমাবদ্ধতা, অক্ষর সীমাবদ্ধতা একপাশে)।

সুতরাং, ফাইলের নাম দৃশ্যমান, পোর্টেবল এবং পরিচালনাযোগ্য। কিছু মেটাডেটা সংরক্ষণ করার জন্য এটি কোনও খারাপ জিনিস নয়।

সম্ভবত সাধারণ ফাইল মেটাডেটা সম্বোধনের সর্বোত্তম সমাধান হ'ল একটি কনটেন্ট রিপোজিটরি ব্যবহার করা , যেখানে ফাইলগুলির জন্য মেটাডেটা স্কিমার সাহায্যে কনটেন্ট সংগ্রহস্থল কনফিগার করা যায়। অনেক ক্ষেত্রে এটি ওভারকিল, তবে, আইএমএইচও হল গুরুতর মেটাডাটা পরিচালনার উপায়।


0

আমার গ্রহণযোগ্যতাটি হ'ল আপনি কোথাও কোথাও এমন কোনও কোড দেখেছেন যা ফাইলের নাম দিয়ে ঝাঁঝরা বা ভঙ্গুর কাজ করে, তবে এর অর্থ এই নয় যে "ফাইলনামে মেটাডেটা সংরক্ষণ করা" সাধারণভাবে খারাপ।

ফাইলের নাম হয় metadata- তারা ফাইলে ডেটা সম্পর্কে তথ্য, ফাইল তথ্য নিজেই স্বাধীন হয়। প্রকৃতপক্ষে, ফাইলের নামগুলি এত পুরানো যে তারা সম্ভবত মেটাডেটার আধ্যাত্মিক উদাহরণ।

আপনি যদি বিবেচনা করেন যে ফাইল এক্সটেনশানগুলি ফাইলের নামের শেষ অংশ, তবে ফাইল-নাম-মেটাডেটা ধারণাটি আরও অনিবার্য হয়ে ওঠে।

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