PDA

View Full Version : تغيير نام Table در زمان اجرا در linq



Ehsani2006
یک شنبه 11 فروردین 1392, 08:27 صبح
با سلام
من دوتا جدول دارم دقيقه با schema يكسان . حالا ميخوام در زمان اجراي برنامه هر وقت كه خواستم اسم Table رو تغيير بدم تا به اطلاعات هر كدوم دسترسي داشته باشم . ضمنا نميخوام Table دومي را به صورت دستي و در مود Design اضافه كنم چون براي سال بعد دوباره بايد تو كد برنامه دست ببرم كه اصلا منطقي و درست نيست .
به عنوان مثال :
دو تا جدول تو SQL server دارم يكي براي سال 91 كه روزهاي تعطيل مربوط به سال 91 رو تو خودش ذخيره مي كنه و يكي براي سال 92 . schema هر دو جدول دقيقا يكي هست فقط ميخوام زماني كه كاربر سال 91 رو انتخاب كرد تعطيلات 91 نمايش داده بشه (محتويات جدول 91) و وقتي 92 رو انتخاب كرد محتويات جدول 92 .

با تشكر .

alihassanabadi
سه شنبه 20 فروردین 1392, 14:52 عصر
سلام
باید بگم مطمئن باش که طراحیت اشتباهه
مگه میشه به ازای هر سال یک جدول رو طراحی کرد
فرضا برای 10 سال ده جدول رو باید طراحی کرد؟
یک جدول برای همیشه که یه فیلد کلید سال داره و بقیه فیلد هایی که نیازه
حال زمانی که کاربر 91 رو انتخاب کرد اون رکوردهایی که سالشون 91 هست رو سلکت میکنی و ...

Ehsani2006
چهارشنبه 21 فروردین 1392, 09:14 صبح
باید بگم مطمئن باش که طراحیت اشتباهه
- دوست عزيز اولا اين جواب سوال من نبود . :متفکر:
- ثانيا : ما چنين ديتابيس هايي با همين نوع طراحي داريم . فرض كن جدولي مثلا براي يك اتوماسيون اداري يا ساعت حضور و غياب با بيش از 100.000 ركورد در سال ! اگر اين پيشنهادي كه شما دادي رو اجرا كنيم متاسفانه اواسط سال دوم يا حداكثر تو سال سوم بايد از برنامه خداحافظي كنيم و بگيم ديگه گنجايش نداره !!:قهقهه:

alihassanabadi
چهارشنبه 21 فروردین 1392, 09:41 صبح
سلام
بازم میگم طراحیت اشتباهه
اینو بدون sql server اینقدر قدرت داره که بتونه جواب میلیون ها رکورد شما رو بده به ویژه 2012 که داره میگه که میلیاردها رکورد رو در آن واحد جواب میده این یک موضوع.
و اما موضوع بعد شما میتونید سالهای گذشته رو آرشیو کنید .
و اما موضوع مهم تر اینکه دوست من شما به جای :قهقهه: و تمسخر میتونید از مباحثی که برای manageability و performance
تو sql موجود هست استفاده کنید نه اینکه به ازای هر سال یک تیبل بسازید!
البته که نیاز نیست ولی اگه دیدید Sql زیر بار داره میخوابه که اگه درست طراحی کنید و درست کد بزنید محاله جواب نده حتی بدون استفاده از مباحث پیشرفته
میتونید از
1- Indexing
2- Tuning
3- Partitioning
استفاده کنید.
موفق باشید.

Ehsani2006
چهارشنبه 21 فروردین 1392, 13:00 عصر
سلام
مقصود من از :قهقهه: تمسخر نبود .


و اما موضوع بعد شما میتونید سالهای گذشته رو آرشیو کنید .
مبحث اول : به چه صورت امكان آرشيو يك سري از ركوردها در يك تيبل وجود داره ؟

ممنون از راهنماييتون.

alihassanabadi
چهارشنبه 21 فروردین 1392, 14:26 عصر
سلام
چون خودش یک بحث مفصله من چندتا لینک رو بهتون معرفی میکنم که آموزش تصویری پارتیشنینگ و آرشیوینگ تیبل رو بهتون توضیح داده
خودتون مطالعه کنید تو همین وب سایت هم تو بخش sql در مورد manageability و performance بحث شده .
و اما لینک های مفید.
http://blogs.msdn.com/b/felixmar/archive/2011/02/14/partitioning-amp-archiving-tables-in-sql-server-part-1-the-basics.aspx بخش 1
http://blogs.msdn.com/b/felixmar/archive/2011/08/29/partitioning-amp-archiving-tables-in-sql-server-part-2-split-merge-and-switch-partitions.aspx بخش 2
موفق باشید برادر.