هل ابقاء بيانات XML داخل جدول SQL يكون سوء فهم المعماري؟

StackOverflow https://stackoverflow.com/questions/1437607

  •  08-07-2019
  •  | 
  •  

سؤال

ولقد حصلت على جدول SQL التي تستخدم للحفاظ على بيانات المنتج. بعض المنتجات لديها البيانات المرفقة أخرى لهم (سواء كان ذلك: كتب لها عدد من الصفحات، نوع الغطاء، أفلام لها على طول الوقت، الخ).

وكان يمكن استخدام جدول منفصل في SQL للحفاظ على تلك، وحفظ (الاسم، قيمة) أزواج.

ويمكنني أيضا أن تبقي فقط على البيانات معبأة XML في حقل واحد في جدول. انها ليست نهجا تطبيع، ولكن يبدو أكثر طبيعية بالنسبة لي.

هل كانت مفيدة؟

المحلول

وفعلت شيئا مماثلا في تطبيق سلة التسوق. نحن في حاجة إلى إرفاق البيانات الفوقية للمنتجات دون خلق الكثير من المخطط، الذي من شأنه أن يحد من شكل للبيانات التعريف في المستقبل. كنا نحافظ على البيانات الفوقية كما XML.

والسبب الوحيد الذي لم أكن لأفعل ذلك هو إذا كنت تريد الذهاب لينتهي تنفيذ استعلامات على البيانات. فقط للتأكد من أنك لن تضطر شخص سخيف الرغبة تقارير الناشر بيانات فوقية أو أي شيء (والذي حدث لي)، ويجب أن يكون على ما يرام.

نصائح أخرى

إذا كنت تنوي استخدام XML كوسيلة لعدم تحديد صحيح جداول قاعدة البيانات التي من شأنها في الواقع المعماري شرطي المغادرة. أنا لست متأكدا من السيناريو الخاص بك، يبدو بشكل خطير على مقربة ذلك. لكن أزواج قيمة المفتاح-وربما أسوأ.

وأفضل شيء هو استخدام نوع بيانات XML متخصص، إذا كانت قاعدة البيانات لديها واحد. بالإضافة إلى قائمة RageZ، وأوراكل كما كان له XMLType لمدة عشر سنوات وحتى الآن (منذ 9I). وميزة استخدام XMLType ذو شقين. فإنه يعلن للمراقب العادي أن الوثائق في هذا العمود XML. كما أنه يتيح لك الوصول إلى وظيفة في البناء، مثل التحقق من صحة مع XML المخططات، ينبغي كنت ترغب في ذلك. ميزات أخرى يمكن أن يثبت مفيد إذا كان لديك وقت لاحق للبدء في اشارة الى محتويات XML. على سبيل المثال، XDB أوراكل يدعم نوع مؤشر XML التي يمكن أن تحسن أداء استعلامات XPath بشكل كبير.

وهذا يعتمد!

إذا كنت تتوقع أن "الشكل" من المنتجات الخاصة بك إلى تختلف اختلافا كبيرا ثم XML هو وسيلة جيدة للذهاب. [إذا كنت تستخدم SQL Server الذي يمكن فهرسة حقل XML.]

وأنا لا htink انها فكرة خاطئة المعماري. فقط للتأكد من أنك لا تريد استخدام هذه البيانات في استعلام لأنها ستعمل على أن تكون معقدة.

بالاضافة الى RDBM مؤخرا لديها وظيفة للتعامل مع XML (MSSQL، بوستجرس، ماي) لذلك كنت لا تزال قادرة على استخدام تلك البيانات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top