PDA

View Full Version : سوال: سال مالي به وسيله يه فيلد اضافه



s_mokhtari
چهارشنبه 17 شهریور 1389, 16:39 عصر
سلام
دوستان من ميخوام هر دانش‌اموزي كه ثبت كردم كنارش يه فيلد هم هست كه سال مالي رو ثبت ميكنه حالا سوال من اينه كه ميگن وقتي سال مالي رو انتخاب كردم دانش‌اموزايي رو نشون بده كه سال مالي اونا مطابق سال مالي انتخاب شدست به نظر شما اين راه مناسب و چطوري استفادش كنم از لحاظ سرعت خوب هست يا نه
ممنون:ناراحت:

بهزادصادقی
چهارشنبه 17 شهریور 1389, 20:55 عصر
سلام عزیز،

من اصلا متوجه فرمایشات شما نمی شوم. می شود خواهش کنم خیلی شمرده و با حوصله سوال خود را دو باره مطرح کنید و در صورت مسئله تان بی زحمت ساختار جداول، کد موجود و متن query های مربوطه (اگر وجود داردند) را بیاورید.

با تشکر.

ahmad_eagle2002
چهارشنبه 17 شهریور 1389, 22:02 عصر
سلام دوستان
آقا بهزاد سوال دوستمان يك مسئله كلي و قديمي را در بر مي گيرد .

ايشان سيستم مالي يا اتوماسيون اداري يك مدرسه را پياده سازي مي كنند كه يك دانش آموز يا در يك سال يا در چند سال ثبت نام ميكند حالا سوال اين است كه يك فيلد به نام سال مالي در جدول ايجاد كنيم ( و در گرفتن گزارشات كلي مشكلي نداشته باشيم مثل تراز سود از ابتدا تا امروز ) و يا به ازاي هر سال يك ديتابيس جديد ايجاد كنيم (ديتابيس جديد حجم كمتر و سرعت بهتر را به ما مي دهد ) البته براي چند سال مالي هم مي توان كوئري نوشت

خود من در برنامه هام از روش دوم استفاده مي كنم
دوست دارم نظرات شما را هم بدونم بخصوص استاد خودم آقاي ثباتي
با تشكر از تمامي دوستان

بهزادصادقی
چهارشنبه 17 شهریور 1389, 22:08 عصر
دست شما درد نکند، احمد آقا.

من خودم همیشه روش اول را انتخاب می کنم. مگر اینکه حجم سطرهای بالای ده ها میلیون عدد باشد. آن وقت هم اول ترجیح می دهم جداول را partition کنم تا اینکه از دیتابیس جدیدی استفاده کنم.

s_mokhtari
پنج شنبه 18 شهریور 1389, 10:20 صبح
سلام
دوستان ميشه راه حل خودتونا كه ديتابيس جدا ميگيريد رو بيشتر توضيح بديد به همراه كد
ممنون:متفکر::متفکر:

ahmad_eagle2002
پنج شنبه 18 شهریور 1389, 12:39 عصر
من خودم همیشه روش اول را انتخاب می کنم. مگر اینکه حجم سطرهای بالای ده ها میلیون عدد باشد. آن وقت هم اول ترجیح می دهم جداول را partition کنم تا اینکه از دیتابیس جدیدی استفاده کنم.

بله درسته كه partiton كردن هر دو مزايا را دارد و از خواندن page هاي بي مورد خود داري مي شود ولي اگر برنامه را براي تعداد كاربر زيادي بنويسيد مثل نرم افزار هاي مالي ،كه هر كس بايد براي خودش نصب كند و بيشتر تك كاربر استفاده مي شود تا شبكه . شما به سيستم كاربر ها دسترسي نداريد تا partition صحيح انجام شود
--------------------


دوستان ميشه راه حل خودتونا كه ديتابيس جدا ميگيريد رو بيشتر توضيح بديد


روش ها متفاوت است و بسيار زياد

يكي از راه ها مي تونه اين باشه كه يك ديتابيس داري كه درون اطلاعات بقيه ديتابيس ها را نگهداري ميكني كه كدام ديتابيس به كدام سال مالي مرتبط است و....

MOJTABAATEFEH
پنج شنبه 18 شهریور 1389, 13:31 عصر
دوستان الان بیشتر نرم افزارهای مالی اینکار را انجام میدهند اونها در این مورد چکاری انجام میدهند؟

s_mokhtari
پنج شنبه 18 شهریور 1389, 17:17 عصر
سلام
دوست عزيز ميشه بگيد چطوري براي هر سال يه ديتابيس درست كنيم دستورشو ميشه بگيد

يا به ازاي هر سال يك ديتابيس جديد ايجاد كنيم
ممنون:گیج::گیج:

s_mokhtari
جمعه 19 شهریور 1389, 21:20 عصر
سلام
كسي نيست راهنمايي كنه
ممنون:گیج::گیج:

ahmad_eagle2002
شنبه 20 شهریور 1389, 17:41 عصر
یک دیتابیس داریم که اطلاعات بقیه دیتابیس ها رو توی چند تا جدول ذخیره می کنیم
مثل نام سال مالی و اسم دیتابیس
در ضمن برای ساختن دیتا بیس جدید از دستور create databae database_name استفاده کنید


حالا هم لیست سال های مالی ایجاد شده را دارید و هم برای گزارش گیری از هر سال مالی براحتی می توانید
بالای کوئری از عبارت زیر استفاده کنید
USE Database_name
go

s_mokhtari
یک شنبه 21 شهریور 1389, 08:25 صبح
یک دیتابیس داریم که اطلاعات بقیه دیتابیس ها رو توی چند تا جدول ذخیره می کنیم
مثل نام سال مالی و اسم دیتابیس
در ضمن برای ساختن دیتا بیس جدید از دستور create databae database_name استفاده کنید


حالا هم لیست سال های مالی ایجاد شده را دارید و هم برای گزارش گیری از هر سال مالی براحتی می توانید
بالای کوئری از عبارت زیر استفاده کنید
USE Database_name
go
سلام
دوست عزيز اين دستور create databae database_name كه بايد يه ديتابيس بسازه حالا من جدولهاي داخلي اين ديتا رو چطوري بسازم
در ضمن كانكشن استرينگ هم بايد با اين حساب عوض بشه ديگه
ممنون:اشتباه:

hossein_h62
یک شنبه 21 شهریور 1389, 10:50 صبح
سلام
من فکر میکنم ایجاد یک دیتابیس جدید برای هر سال مالی روش مناسبی نباشه.
الان سیستمهای یکپارچه بزرگی هستند با 20-30 زیر سیستم که برای سال مالی یک فیلد در نظر میگیرند نه ایجاد یک دیتابیس برای هر سال !

s_mokhtari
یک شنبه 21 شهریور 1389, 11:41 صبح
سلام
من فکر میکنم ایجاد یک دیتابیس جدید برای هر سال مالی روش مناسبی نباشه.
الان سیستمهای یکپارچه بزرگی هستند با 20-30 زیر سیستم که برای سال مالی یک فیلد در نظر میگیرند نه ایجاد یک دیتابیس برای هر سال !
سلام
دوست من يعني هر جدولي رو كه بخوام بخونم بايد قبلش اين فيلد رو هم چك كنم
مثلن ميخوام ليست راننده يا دانش‌اموز رو بخونم بايد قبلش اين فيلد سال رو چك كنم
حالا اگه بخوام راننده هاي سال قبل توي ديتابيس جديد هم باشن بايد فيلد سال رو در نظر نگيرم
ميشه توضيح بديد
ممنون:متفکر::متفکر:

hossein_h62
یک شنبه 21 شهریور 1389, 12:15 عصر
حالا اگه بخوام راننده هاي سال قبل توي ديتابيس جديد هم باشن بايد فيلد سال رو در نظر نگيرم
الان شما این چیزی که گفتید یعنی میخواین برای سال مالی جدید یه دیتابیس جدید ایجاد کنید...

نظر من اینه که یک دیتابیس واحد داشته باشید و در جداولی که تفکیک سال مالی لازم هست فیلد سال مالی رو در نظر بگیرید.من ساختار جداول شما رو نمیدونم ولی در جدول رانندگان لزومی نداره که این فیلد رو داشته باشید.

يعني هر جدولي رو كه بخوام بخونم بايد قبلش اين فيلد رو هم چك كنم
کار سختی نیست؛ در کوئری ها بعد از همه شرطها، سال مالی مورد نظر رو هم چک کنید.
من با دیتابیس بعضی از نرم افزارهای فرآیندی بزرگ کار کردم.اونها هم از این روش استفاده میکنند.

ahmad_eagle2002
دوشنبه 22 شهریور 1389, 11:49 صبح
براي ساخت ديتابيس جديد به همراه جداول و sp هايش هم مي توانيد از script استفاده كنيد و هم يك بار آنها را در ديتابيس model بسازيد .
با اين كار هر بار كه يك ديتابيس جديد مي سازيد تمامي object هايي كه در ديتابيس model وجود دارد در داخل ديتابيس جديد هم ساخته خواهد شد

s_mokhtari
پنج شنبه 25 شهریور 1389, 09:00 صبح
براي ساخت ديتابيس جديد به همراه جداول و sp هايش هم مي توانيد از script استفاده كنيد و هم يك بار آنها را در ديتابيس model بسازيد .
با اين كار هر بار كه يك ديتابيس جديد مي سازيد تمامي object هايي كه در ديتابيس model وجود دارد در داخل ديتابيس جديد هم ساخته خواهد شد
سلام
دوست عزيز ميشه يه نمونه برام آماده كنيد
ممنون:خجالت::خجالت:

s_mokhtari
جمعه 26 شهریور 1389, 17:09 عصر
سلام
كسي نيست جواب منو بده يه نمونه برام بذاره
ممنون:چشمک:

بهزادصادقی
جمعه 26 شهریور 1389, 17:38 عصر
سلام
كسي نيست جواب منو بده يه نمونه برام بذاره
ممنون:چشمک:

نگاه کن، هر جدول یا stored procedure یا کلا هر database object ای را که شما در دیتابیس موسوم به model (که به طور خودکار در همه سیستم های SQL Server وجود دارد) به وجود می آوری، به طور خودکار در کل دیتابیس هایی که از آن لحظه به بعد می سازی وجود خواهند داشت.

برای آزمایش، برو توی دیتابیس model. یک جدول اضافه کن. فرق نداره چه جدولی. بعد یک دیتابیس جدید را بساز. می بینی که اون جدولی را که توی دیتابیس model ساخته بودی به صورت اتوماتیک به این دیتابیس جدید هم اضافه شده است.

s_mokhtari
چهارشنبه 31 شهریور 1389, 18:02 عصر
نگاه کن، هر جدول یا stored procedure یا کلا هر database object ای را که شما در دیتابیس موسوم به model (که به طور خودکار در همه سیستم های SQL Server وجود دارد) به وجود می آوری، به طور خودکار در کل دیتابیس هایی که از آن لحظه به بعد می سازی وجود خواهند داشت.

برای آزمایش، برو توی دیتابیس model. یک جدول اضافه کن. فرق نداره چه جدولی. بعد یک دیتابیس جدید را بساز. می بینی که اون جدولی را که توی دیتابیس model ساخته بودی به صورت اتوماتیک به این دیتابیس جدید هم اضافه شده است.
سلام
شرمنده دوست عزيز من توي modelنتونستم جدول درست كنم ميشه يه نمونه برام بذاري
ممنون:ناراحت::ناراحت:

بهزادصادقی
چهارشنبه 31 شهریور 1389, 18:32 عصر
چرا نتوانستید این کار را بکنید؟ چه مشکلی پیش آمد؟ یا اینکه اصلا نمی دانید این کار یعنی چی؟

s_mokhtari
پنج شنبه 01 مهر 1389, 09:05 صبح
چرا نتوانستید این کار را بکنید؟ چه مشکلی پیش آمد؟ یا اینکه اصلا نمی دانید این کار یعنی چی؟
سلام
اصلان نميدونم بايد چيكار كنم
:متعجب::متعجب:

بهزادصادقی
پنج شنبه 01 مهر 1389, 09:18 صبح
فکر کنم خیلی سریعتر باشد اگر تلفنی با هم صحبت کنیم.

ایمیل من behzad.sadeghi@yahoo.com می باشد. یک پیغام برای من بفرست و من اطلاعات تماس خویش را برای شما خواهم فرستاد. مسئله خیلی ساده است. ولی چند تا مفهوم ریشه ای باید برای شما جا بیفتد تا بتوانید راه حلش را درک کنید.