تالار گفتمان nCIS.ir

نسخه‌ی کامل: طراحی عمودی یا افقی دیتابیس برای این پروژه ؟
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام روز بخیر
یه پروژه انجمن داریم که قرار هست هر یوزر حداقل ۳۲ تا فیلد داشته باشه و تعداد یوزرها هم قراره به ۱۰۰هزار + برسه.
این انجمن هم واسه خودمون هست و به همین دلیل می خواهیم که خیلی خوب کار کنیم روش.

به نظر شما پیاده سازی از نوع key value (مثل وردپرس) عمودی باشه بهتره یا بصورت افقی و رایج ؟

فریم ورک هم هنوز در دست بررسی هست یا yii2 یا laravel5 یا zend2 

کلا در این زمینه چطور عمل می کنید؟
امروزه سیستمهای افقی مثل وردپرس و دروپال عملاً کارآیی مناسبی ندارن تا جایی که دیدم و دارن روند کارشون رو تغییر میدن. بخصوص توی حجم بالا این روش خیلی دیتابیس رو حجیم میکنه. درمورد فریمورک هم Yii2 و Laravel5 رو توصیه میکنم ولی Zend رو نه و اگه میخواین خیلی مهندسی شده کار کنید و ازطرفی سرعت رو هم داشته باشین، به سیمفونی و فالکن فکر کنید.
ممنون از شما، معذرت می خوام وردپرس که عمودی و key value هست. متوجه نشدم
من زیاد ساختار دیتابیس وردپرس رو ندیدم ولی تا جایی که بررسی کردم توی Drupal از روش افقی زیاد استفاده شده.
از این روش های افقی و عمودی یه مثال بیارین بد نیستااااا ما هم به اطلاعاتمون اضافه میشه!
روش افقی یعنی اینکه اطلاعات فیلدهای جداول خودشون بصورت رکوردهای یه جدول دیگه تعریف بشن و با ساختار Key-Value و یک جدول واسط، اطلاعات ثبت بشن. این روش باعث زیادشدن جداول در اغلب مواقع میشه (برای مثال جداولی مثل Taxonomy و... باید اضافه‌کنید) و ازطرفی کاربرد اصلیش در مواقعی هست که رکوردها دارای اطلاعات شناور هستن و ساختار جدولی ثابتی ندارن. برای مثال یک رکورد ممکنه دارای مقادیری باشه که توی رکوردهای دیگه نیست. در چنین مواقعی امروزی از NoSQL و دیتابیسهایی مثل MongoDB استفاده میشه و ترجیح میدن دیتابیسهای رابطه‌ای مثل MySQL رو برای همون ساختار عمودی نگه‌دارن. توی ساختار عمودی ستون‌های جدول ثابته و اگه یه جدول دارای یه مقدار خاصی نباشه براش توی رکورد مربوطه توی اون ستون Null درنظر میگیرن. این روش افزونگی اندکی ایجاد میکنه ولی سرعت کار رو بالا میبره و از پیچیدگی هم کم میکنه.