EAV - সব পরিস্থিতিতে এটি সত্যিই খারাপ?


65

আমি কোনও একটি প্রকল্পের স্টাফের জন্য একটি সত্তা-গুণ-মান (EAV) মডেলটি ব্যবহার করার কথা ভাবছি , তবে স্ট্যাক ওভারফ্লোতে এটি সম্পর্কে সমস্ত প্রশ্ন EAV কে অ্যান্টি-প্যাটার্ন বলার উত্তর পর্যন্ত শেষ হয়।

তবে আমি ভাবছি যে এটি সব ক্ষেত্রেই ভুল।

আসুন আমরা শপ প্রোডাক্ট সত্তা বলে থাকি, এর সাধারণ বৈশিষ্ট্য রয়েছে যেমন নাম, বিবরণ, চিত্র এবং দাম, যা অনেক জায়গায় যুক্তিতে অংশ নেয় এবং (আধা) অনন্য বৈশিষ্ট্য যেমন ঘড়ি এবং সৈকত বলকে সম্পূর্ণ ভিন্ন দিক দিয়ে বর্ণনা করা হবে। সুতরাং আমি মনে করি EAV সেগুলি (আধা) অনন্য বৈশিষ্ট্যগুলি সংরক্ষণ করার জন্য ফিট করবে।

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

আমি ম্যাজেন্টো বাণিজ্যগুলিতে এ জাতীয় দৃষ্টিভঙ্গি দেখেছি এবং এটি বেশ জনপ্রিয়, তাই যখন ইএভি যুক্তিসঙ্গত হয় তখন কি কিছু ঘটনা ঘটে?


2
@ বুসি_ওয়েট "সত্তা-অ্যাটটিবুট-মান" সারণী - উইকিপিডিয়ায় সত্ত্বা – গুণ। মান মডেলটি দেখুন
রস প্যাটারসন

ইএভি প্যাটার্নের উদাহরণের জন্য সত্যিই ভাল কাজ করছে, ডাটাটিক ডাটাবেসটি একবার দেখুন। এটি ইএভিটি প্যাটার্নে সমস্ত কিছু সঞ্চয় করে (টি একটি "টাইমস্ট্যাম্প", আসলে আরও বেশি লেনদেন আইডির মতো)। তাদের [সূচীকরণ ডকুমেন্টেশন] (docs.datomic.com/indexes.html) এটিকে সেরা দেখাচ্ছে বলে মনে হচ্ছে। EAV ভয়ঙ্করভাবে কাজ করার উদাহরণের জন্য, ওয়ার্ডপ্রেস দেখুন
ড্যান রস

উত্তর:


80

https://web.archive.org/web/20140831134758/http://www.dbforums.com/database-concepts-design/1619660-otlt-eav-design-why-do-people-hate.html

EAV বিকাশকারীকে প্রয়োজনীয় হিসাবে স্কিমা সংজ্ঞায়িত করার জন্য একটি নমনীয়তা দেয় এবং এটি কিছু পরিস্থিতিতে ভাল good

অন্যদিকে এটি একটি খারাপ সংজ্ঞায়িত ক্যোয়ারির ক্ষেত্রে খুব খারাপভাবে সম্পাদন করে এবং অন্যান্য খারাপ অভ্যাসগুলিকে সমর্থন করতে পারে।

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


32
শেষ বাক্যটি ভালোবাসি।
জোহর পেরেড

2
পচা লিঙ্ক। কোথাও একটি ক্যাশেড সংস্করণ আছে?
ওয়াইল্ডকার্ড

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

29

সংক্ষেপে, আপনার গুণাবলীর তালিকা ঘন ঘন বাড়তে থাকে বা এটি এত বড় যে আপনি প্রতিটি বৈশিষ্ট্যকে একটি কলাম তৈরি করলে বেশিরভাগ সারি বেশিরভাগ NULL দিয়ে পূর্ণ হবে E Context প্রসঙ্গের বাইরে ব্যবহার করা হলে এটি একটি অ্যান্টি-প্যাটার্নে পরিণত হয়।


16
আমি "ঘন ঘন" এর পরিবর্তে "রান-টাইমে পরিবর্তিত হওয়া সম্ভাব্যতা" দরকার।
ডক ব্রাউন

3
আমরা আরও ডক ব্রাউনকে সংক্ষিপ্ত করতে পারি মোটামুটি সুস্পষ্টভাবে "ডাইনামিক" শব্দটি ব্যবহার করে - EAV কার্যকর যখন আপনার বৈশিষ্ট্যের তালিকাটি পরিবর্তনশীল হতে পারে।
আলেকজান্ডার মিলস


1
CREATE TABLEনতুন বৈশিষ্ট্যের জন্য কোনও বৈশিষ্ট্য পরিবর্তন করার জন্য ফর্মটি থাকার চেয়ে এটি কি অগত্যা আরও কার্যকর হয় ?
দামিয়ান ইয়ারিক

@ দামিয়ানয়ারিক আকর্ষণীয় পদ্ধতির আপনি কি প্রযোজনায় এটি ব্যবহার করেছেন?
খনন করুন

21

আসুন শপ প্রোডাক্ট সত্তা, এর সাধারণ বৈশিষ্ট্য রয়েছে যেমন নাম, বিবরণ, চিত্র, দাম ইত্যাদি, যা অনেক জায়গায় যুক্তিতে অংশ নেয় এবং (আধা) অনন্য বৈশিষ্ট্যগুলি যেমন ঘড়ি এবং সৈকত বলকে সম্পূর্ণ ভিন্ন দিক দিয়ে বর্ণনা করা হবে । সুতরাং আমি মনে করি EAV সেই (আধা) অনন্য বৈশিষ্ট্যগুলি সংরক্ষণ করার জন্য ফিট করবে?

এর জন্য একটি EAV কাঠামো ব্যবহার করাতে বেশ কয়েকটি প্রভাব রয়েছে যা বাণিজ্য বন্ধ।

আপনি সারিটির জন্য একটি 'কম জায়গা বন্ধ করে' বাণিজ্য করছেন কারণ আপনার কাছে 100 টি কলাম নেই যা null'আরও জটিল প্রশ্ন এবং মডেল'র বিপরীতে রয়েছে।

একটি EAV থাকার অর্থ সাধারণত মানটি একটি স্ট্রিং যা কোনও কোনও ডেটা স্টাফ করতে পারে। এর পরে বৈধতা এবং সীমাবদ্ধতা যাচাইয়ের উপর জড়িত। আপনি পরিস্থিতি বিবেচনা করুন যেখানে আপনি EAV সারণীতে কিছু হিসাবে ব্যবহৃত ব্যাটারির সংখ্যা রেখেছেন। আপনি এমন একটি টর্চলাইট সন্ধান করতে চান যা সি মাপের ব্যাটারি ব্যবহার করে তবে এর মধ্যে 4 টিরও কম।

select P.sku
from
  products P
  attrib Ab on (P.sku = Ab.sku and Ab.key = "batteries")
  attrib Ac on (P.sku = Ac.sku and Ac.key = "count")
where
  cast(Ac.value as int) < 4
  and Ab.value = 'C'
  ...

এখানে উপলব্ধি করার জিনিসটি হ'ল আপনি মানটির উপর যুক্তিযুক্ত যুক্তি ব্যবহার করতে পারবেন না। আপনি কাউকে এমন কোনও কিছু স্থাপন করা থেকে বিরত রাখতে পারবেন না যা সেখানে পূর্ণসংখ্যা নয়, বা একটি অবৈধ পূর্ণসংখ্যার ('-1' ব্যাটারি ব্যবহার করে) কারণ মান কলামটি বিভিন্ন কারণে বারবার ব্যবহৃত হয়।

এটির পরে পণ্যের জন্য একটি মডেল লেখার চেষ্টা করার সাথে জড়িত। আপনার সুন্দর টাইপ করা মান থাকবে ... তবে আপনি Map<String,String>এতে সমস্ত প্রকারের জিনিস নিয়ে একটি সবেমাত্র বসে থাকবেন । যখন এটি XML বা JSON এবং বৈধতা বা বিরুদ্ধে প্রশ্নের করতে চেষ্টা জটিলতার করার serializing এই তারপর আরও বিষয় রয়েছে সেই কাঠামো।

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

আপনার সাথে সম্পর্কিত সারণী থাকতে পারে যা নির্দিষ্ট নির্দিষ্ট শ্রেণীর পণ্যের বৈশিষ্ট্য ধারণ করে। মুদি বিভাগে আরও একটি সারণী থাকতে পারে যার সাথে এর সাথে সম্পর্কিত বেশ কয়েকটি বৈশিষ্ট্য রয়েছে যা বিল্ডিং উপকরণগুলির প্রয়োজন হয় না (এবং বিপরীতে)।

+----------+    +--------+    +---------+
|Grocery   |    |Product |    |BuildMat |
|id (fk)   +--->|id (pk) |<---+id (fk)  |
|expiration|    |desc    |    |material |
|...       |    |img     |    |...      |
+----------+    |price   |    +---------+
                |...     |               
                +--------+               

এমন সময় আছে যা বিশেষত একটি EAV টেবিলের জন্য কল করে

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

একটি ধারণা বেরিয়ে আসে যে "আমরা গ্রাহকটিকে টেবিলটি সংশোধন করতে দেব" এবং এটি কেবল খারাপ (আপনি টেবিল কাঠামোর জন্য মেটা-প্রোগ্রামিংয়ের সাথে জড়ান কারণ আপনি কোথায় জানেন না যে তারা কোথায় রয়েছে, তারা রয়্যাল কাঠামোকে গোলমাল করতে পারে বা দূষিত করতে পারে) অ্যাপ্লিকেশন, তারা ভুল কাজ করার অ্যাক্সেস পেয়েছে এবং সেই অ্যাক্সেসের প্রভাবগুলি তাৎপর্যপূর্ণ হয়ে ওঠে)। এমভিসি 4 এ এই পথটি সম্পর্কে আরও রয়েছে: রান সময়ে মডেলটি কীভাবে তৈরি করা যায়?

পরিবর্তে, আপনি কোনও EAV টেবিলের প্রশাসনিক ইন্টারফেস তৈরি করেন এবং এটি ব্যবহারের অনুমতি দিন। গ্রাহক যদি 'পোলক্যাডটস' এর জন্য একটি এন্ট্রি তৈরি করতে চান তবে এটি EAV টেবিলের মধ্যে যায় এবং কীভাবে এটি মোকাবেলা করতে হবে তা আপনি ইতিমধ্যে জানেন।

এর উদাহরণটি রেডমাইনের জন্য ডাটাবেস মডেলে দেখা যাবে আপনি কাস্টম_ফিল্ডস টেবিল এবং কাস্টম_মূল্য সারণী দেখতে পারবেন - এগুলি EAV এর অংশ যা সিস্টেমকে প্রসারিত করার অনুমতি দেয়।


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

আপনি কোনও ইনভেন্টরি ম্যানেজমেন্ট সিস্টেমের জন্য এসকিউএল বনাম নোএসকিউএল পড়তে চাইতে পারেন

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

আর একটি পদ্ধতির এলডিএপ হবে যেখানে এর সাথে সম্পর্কিত সমস্ত আইটেমের সাথে একটির বেস থাকবে তবে তার পরে অন্যান্য ধরণের আইটেমগুলির জন্য এটিতে অতিরিক্ত অবজেক্ট ক্লাস প্রয়োগ করা হবে। ( এলডিএপি ব্যবহার করে সিস্টেমের ইনভেন্টরি দেখুন )

একবার আপনি এই পথে নামার পরে, আপনি এমন কিছু সন্ধান করতে পারেন যা আপনি যা খুঁজছেন ঠিক তার সাথে মেলে ... যদিও সবকিছু কিছু ট্রেড অফের সাথে আসে।


10

6 বছর পরে

এখন যে পোস্টগ্র্রেসে জেএসওন এখানে রয়েছে, তাদের জন্য আমাদের আরও একটি বিকল্প রয়েছে, যারা পোস্টগ্রিস ব্যবহার করছেন। যদি আপনি কেবল কোনও পণ্যের সাথে কিছু অতিরিক্ত ডেটা সংযুক্ত করতে চান তবে আপনার প্রয়োজনগুলি মোটামুটি সহজ। উদাহরণ:

CREATE TABLE products (sku VARCHAR(30), shipping_weight REAL, detail JSON);
INSERT INTO products ('beachball', 1.0, '{"colors": ["red", "white"], "diameter": "50cm"}');

SELECT * FROM products;
    sku    | weight |               detail               
-----------+--------+------------------------------------
 beachball |      1 | {"colors": ["red", "white"], "diameter": "50cm"}

: এখানে Postgres মধ্যে তাদেরকে JSON করার জন্য একটি বাধামুক্ত ভূমিকা https://www.compose.com/articles/is-postgresql-your-next-json-database/

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

এছাড়াও, নোট করুন যে একটি JSONB ক্ষেত্রের মধ্যে ক্ষেত্রগুলি একটি আপডেটের ক্যোয়ারির সাথে পৃথকভাবে সংশোধন করা যায় না; আপনাকে জেএসওএনবি ফিল্ডের পুরো সামগ্রীটি প্রতিস্থাপন করতে হবে।

এই উত্তরটি সরাসরি প্রশ্নের সমাধান করতে পারে না, তবে এটি একটি ইএভি প্যাটার্নের বিকল্প প্রস্তাব করে, যে কেউ মূল প্রশ্নটি বিবেচনা করছে তাকে বিবেচনা করা উচিত।


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

1
"... একটি জেএসওএনবি ফিল্ডের মধ্যে ক্ষেত্রগুলি একটি আপডেটের ক্যোয়ারির সাথে পৃথকভাবে সংশোধন করা যায় না; আপনাকে জেএসওএনবি ক্ষেত্রের পুরো সামগ্রীটি প্রতিস্থাপন করতে হবে।" এটি পুরানো, তাই না? jsonb_set()Postgres 9.5 এ একটি ফাংশন রয়েছে এবং পরে এটি ঠিক এটির জন্য। (যে নিবন্ধটি আপনি লিঙ্কগুলির সাথে লিঙ্ক করেছেন তাতে 9.5 বৈশিষ্ট্য সংযোজন নিয়ে আলোচনা করা একটি নতুন নিবন্ধের পরিবর্তে ))
ওয়াইল্ডকার্ড

7

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

দীর্ঘ পাতলা টেবিলটিতে পৃথক তথ্য সংরক্ষণের সাধারণ ক্ষেত্রে ... আপনার প্রয়োজন হলে নতুন টেবিলগুলি তৈরি করতে আপনার ভয় করা উচিত নয় এবং কেবল এক বা দুটি দীর্ঘ চর্মসার টেবিল থাকা কেবল একটি বা তার চেয়ে বেশি ভাল নয় or দুটি ছোট ফ্যাট টেবিল

বলা হচ্ছে, লগিংয়ের জন্য EAV টেবিলগুলি ব্যবহার করার জন্য আমি কুখ্যাত। তাদের কিছু ভাল উপযোগ আছে।


দয়া করে "চর্মসার টেবিল" এবং "ফ্যাট টেবিল" সংজ্ঞায়িত করুন।
তুলিনাস কর্ডোভা

@ টুলিনস কর্ডোভা: একটি "চর্মসার" টেবিলটি কয়েকটি সারি এবং অনেকগুলি কলাম সহ একটি হবে, যখন একটি চর্বিযুক্ত টেবিলটি অনেকগুলি কলাম এবং কয়েকটি সারি যুক্ত। উদাহরণস্বরূপ একটি লুকিং টেবিল তৈরি করা হবে যেখানে আপনার বলার জন্য সম্পত্তি রয়েছে। একটি ফ্যাট টেবিলের বইয়ের প্রতি একেকটি রেকর্ড থাকবে, নির্দিষ্ট কিছু টুকরোগুলির জন্য অনেকগুলি কলাম থাকবে, এবং একটি পাতলা টেবিলটিতে চারটি কলাম আইডি, বই, ক্ষেত্রের নাম, ফিল্ড_ডেটা থাকতে পারে। প্রথমটির সুবিধাটি হ'ল কম রেকর্ড রয়েছে তবে নেতিবাচকটি হ'ল কিছু ক্ষেত্র ফাঁকা হতে পারে এবং পুরো জিনিসটি প্রসারিত করা শক্ত।
স্যাটানিকপুপি

@ স্যাটানিকপুপি আমার ধারণা আপনার চর্মসার / চর্বি সংজ্ঞাগুলি মিশে গেছে - সেগুলি একই। আপনি কি বোঝাতে চান যে চর্মসার টেবিলটিতে কয়েকটি কলাম এবং অনেকগুলি সারি রয়েছে?
চার্লস উড

1

EAV সুস্পষ্ট কাঠামোর সমস্যাটিকে বোঝায় ধারণায় পরিবর্তিত করে। X বলার পরিবর্তে ক এবং ক কলামযুক্ত একটি সারণী আপনি বোঝাচ্ছেন যে কলামগুলি A এবং B টি টেবিল এক্স গঠন করে It's এটি এক অর্থে বিপরীত তবে অগত্যা এক-থেকে এক ম্যাপিং নেই। আপনি বলতে পারেন যে এ এবং বি উভয় মানচিত্র টেবিলের জন্য (বা টাইপ করুন) এক্স এবং ওয়াই। এটি আরও জড়িত ডোমেনে গুরুত্বপূর্ণ হতে পারে যেখানে প্রসঙ্গটি গুরুত্বপূর্ণ।

আমি এই ধরণের পদ্ধতির জন্য ডেটামিক অধ্যয়ন করেছি এবং আমার মনে হয় এটি একটি কার্যকর এবং শক্তিশালী সিস্টেম যা আপনার এটি করা উচিত তার সীমাবদ্ধতার সাথে (এমনটি নয় যে আপনি পারেননি)।

যে EAV ধীর হবে, বা "আপনাকে নিজেকে ফাঁসানোর জন্য যথেষ্ট দড়ি দিন" এমন কোনও বিবৃতি নয় যা আমি সম্মত। পরিবর্তে, আমি EAV এর শক্তির উপর আরও জোর দেব এবং এটি যদি আপনার সমস্যার জায়গার জন্য উপযুক্ত করে তবে আপনার এটি বিবেচনা করা উচিত।

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

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

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