PDA

View Full Version : xml برای ساختن محیطی مثل وبلاگ مناسب است؟



Arsham**
یک شنبه 30 آبان 1389, 12:17 عصر
سلام:لبخندساده:
اگه بخوایم وبسایتی طراحی کنیم که برای چند نفر محیطی مثل وبلاگ رو فراهم کنه، (با توجه به اینکه متن پست ها می تونه طولانی باشه و ذخیره ی اونها توی بانک sql چندان مناسب به نظر نمی رسه) به نظر شما استفاده از xml چطوره؟

vcldeveloper
یک شنبه 30 آبان 1389, 20:46 عصر
به نظر شما استفاده از xml چطوره؟
استفاده از XML برای چه کاری؟ شما ممکنه بخواید قالب سایت تون رو با استفاده از XSLT آماده کنید، یا محتوای بخش هایی رو (مثل منوها) از XML لود کنید.

اگر منظورتون استفاده از XML به عنوان محلی برای ذخیره پست ها ست، XML بانک اطلاعاتی نیست، بسیاری از مزایای بانک های اطلاعاتی هم نداره. استفاده از XML به عنوان بانک اطلاعاتی، اون هم برای استفاده چندین نفر به صورت همزمان، کار منطقی نیست، مگر اینکه توجیح قوی داشته باشید، و یک فریم ورک مناسب هم داشته باشید که کل برنامه شما (سایت شما) با اون ارتباط برقرار کنه (مثل موتور بانک اطلاعاتی) و اون فریم ورک از XML برای ذخیره داده ها استفاده کنه.


با توجه به اینکه متن پست ها می تونه طولانی باشه و ذخیره ی اونها توی بانک sql چندان مناسب به نظر نمی رسه
نرم افزارهای معروف ایجاد وبلاگ و CMS مثل WordPress یا Joomla که به طور وسیع در دنیا استفاده میشند، تمام داده های خودشان را در MySQL ذخیره می کنند. چه چیزی در مطالب شما هست که قراره برای بانک اطلاعاتی مشکل ایجاد کنه؟!
در ضمن، XML یک فایل متنی ساختارمند هست. ازش انتظار نداشته باشید که از نظر کارایی در مقایسه با بانک اطلاعاتی، مزیت خاصی براتون بوجود بیاره.

Arsham**
دوشنبه 01 آذر 1389, 11:30 صبح
قبل از هر چیزی از توجهتون ممنونم جناب کشاورز:لبخندساده:
بله، منظورم استفاده از xml برای ذخیره ی پست ها هست.
تصور کنیم 200 کاربر داریم، اگه متن پست اینها رو در بانک ذخیره کنم هر حرفشون 2بایت فضا اشغال میکنه و اگه برای هر پستی به طور میانگین تعداد 1000 حرف رو در نظر بگیریم برای هر پست 2کیلو بایت فضا می خوایم
sql برای داده های ntext مکانیزم پوینتری داره و نمی دونم با این حجم و تعداد پست ها چه تاثیری در سرعت و امنیت اونها می ذاره.http://www.p2p.dotnetsource.com/images/emoticons/22.gif
از طرفی نمی دونم همین روال در xml چه جوریه؟ یعنی از لحاظ حجم و سرعت و امنیت چه طور عمل می کنهhttp://www.p2p.dotnetsource.com/images/emoticons/10.gif
میشه توضیح بدید البته خیلی ساده چون من خیلی با جزئیات کاربردها ی xml آشنا نیستم:خجالت:
ممنون

vcldeveloper
دوشنبه 01 آذر 1389, 18:44 عصر
از طرفی نمی دونم همین روال در xml چه جوریه؟ یعنی از لحاظ حجم و سرعت و امنیت چه طور عمل می کنه
ببینید، MS SQL Server یک نرم افزار موتور بانک اطلاعاتی هست. XML صرفا یک استاندارد تعریف داده هست. اینها با هم قابل مقایسه نیستند. XML خودش به تنهایی چیزی به شما نمیده. فقط با استفاده از تگ های اون، شما یک داده را تعریف می کنید. مثلا میگید در این متن، این قسمت نام نویسنده هست، این قسمت تاریخ ارسال هست، این قسمت متن پست هست، و غیره. حالا برای اینکه بخواید با این کار کنید، یا باید خودتون یک Parser بنویسید، که متن مربوطه و تگ ها را براتون Parse کنه، یا اینکه از یک DOM آماده استفاده کنید. یک XML DOM نرم افزاری هست که متن XML شما را میخونه و Parse میکنه، و محتوای آن را به صورت ساختاری از اشیاء به شما بر می گردونه. اون وقت شما می تونید در این ساختار پیمایش کنید، و در صورت نیاز به دنبال تگ خاصی بگردید، یا محتوای آن را دریافت کنید.

پس کار XML با کار یک موتور بانک اطلاعاتی قابل مقایسه نیست. شما می تونید یک داده را با فرمت XML در یک فایل یا در بانک اطلاعاتی ذخیره کنید. این یعنی، در صورت استفاده از XML، شما صرفا یک فرمت اختصاصی برای تعریف داده هایتان مشخص کردید، اما اینکه این داده به چه شکل و کجا ذخیره بشه (فایل یا بانک اطلاعاتی یا هر چیز دیگه) به XML ربطی نداره.



sql برای داده های ntext مکانیزم پوینتری داره و نمی دونم با این حجم و تعداد پست ها چه تاثیری در سرعت و امنیت اونها می ذاره
MS SQL Server داده های از نوع Image یا nText رو به طور پیش فرض جدا از سایر داده های ساختار یک جدول نگهداری میکنه تا وجود این نوع از داده ها در هر رکورد موجب کاهش سرعت پیمایش رکورد ها نشه، و البته بشه چگونگی ذخیره سازی داده ها در File Group ها را بهتر کنترل کرد. این از نظر سرعت یا امنیت مشکلی برای شما بوجود نمیاره.


به طور میانگین تعداد 1000 حرف رو در نظر بگیریم برای هر پست 2کیلو بایت فضا می خوایم
همچین حجمی برای MySQL هم چیزی به حساب نمیاد، چه برسه برای MS SQL Server! با این حجم از اطلاعات، اگر 200 کاربر شما هر روز پست ارسال کنند، در طول یک سال، به طور میانگین چیزی در حدود 142 مگابایت داده تولید می کنند. این یعنی در طول 10 سال، حدودا 1.5 گیگابایت داده تولید می کنند! 1.5 گیگابایت برای یک موتور بانک اطلاعاتی متوسط (مثل MySQL) یا یک موتور بانک اطلاعاتی قوی (مثل MS SQL Server) رقم بالایی محسوب نمیشه. به عنوان نمونه، کل پست های سایت برنامه نویس که حجمشون بالغ بر چند گیگابایت میشه، در یک بانک MySQL ذخیره میشند. اگر شما میخواستید با استفاده از XML و مکانیزم ابتکاری خودتان همچین حجمی را مدیریت و پردازش کنید، به مراتب به کارایی پایین تری می رسیدید.