PDA

View Full Version : سوال: منظور از انبار يك فروشگاه چيه ؟



tik_tak
یک شنبه 20 مرداد 1387, 17:24 عصر
ببخشيد كه چنين سوالي ميپرسم


ببنيد منظور از انبار كالاهاي موجود در محيط فروشگاهه يا جايه مجزا و جدا از فروشگاهمون ؟


آخه من ديدم كه بيشتر فروشگاهها يه انبار كالا هم دارند ؟
چه طوري بايد در نظر گرفت ؟.

SYNDROME
یک شنبه 20 مرداد 1387, 21:22 عصر
ببخشيد كه چنين سوالي ميپرسم


ببنيد منظور از انبار كالاهاي موجود در محيط فروشگاهه يا جايه مجزا و جدا از فروشگاهمون ؟


آخه من ديدم كه بيشتر فروشگاهها يه انبار كالا هم دارند ؟
چه طوري بايد در نظر گرفت ؟.
انبار کالا همان انباری است که سیستم های یکپارچه دارند.
کلمه انبار یک محل برای نگهداری کالا ها است و می تواند هر جایی باشد که کالا در آن قرار دارد.کوشه یک ازاتاق و یا یک سوله بسیار بزرگ.
که هر کالایی داخل آن قرار دارد جزء موجودی انبار ما می باشد.
موفق باشید

z.nasiri
دوشنبه 21 مرداد 1387, 22:02 عصر
سلام
به نظرم وقتی بحث انبار می شه اون هم توی یه فروشگاه و نه یه مغازه یا یک جای کوچیک
باید جایی غیر از محیط فروشگاه باشه
که موجودیش هم عموما منهای موجودیه الان فروشگاهه
موفق باشید

SYNDROME
سه شنبه 22 مرداد 1387, 06:51 صبح
سلام
به نظرم وقتی بحث انبار می شه اون هم توی یه فروشگاه و نه یه مغازه یا یک جای کوچیک
باید جایی غیر از محیط فروشگاه باشه
که موجودیش هم عموما منهای موجودیه الان فروشگاهه
موفق باشید
حرف شما درست است.
ولی به یک نکته دقت کنید که موادی که داخل یک فروشگاه زنجیره ای برای فروش قرار گرفته است جزء موجودی انبار می باشد و تا زمان خروج همچنان موجودی انبار می باشد.
یعنی همان فروشگاه زنجیره که کالا را برای فروش قرار داده است خود هم یک انبار است.
موفق باشید

amin_alexi
سه شنبه 22 مرداد 1387, 08:29 صبح
البته به نظر من بستگی داره به فروشگاه ...
یکی انبار همان مغازشه که بهتره از سیستم خرید و فروش استفاده کنه و لی یکی انبار جدا داره و انبارش مسئول داره و در قبال مجوز اجازه ورود و خروج کالا رو میده که کالا به فروشکاه بره یا از بیرون به داخل وارد بشه
که باید انبار حواله و رسید داشته باشه ...
و انبار از مسئله خرید و فروش جدا میشه (البته نه کاملا ... ) باز هم بستگی به مکانسیم سیستم کاغذ بازیشون داره !!!

Amir_Safideh
سه شنبه 22 مرداد 1387, 17:54 عصر
ببینید دوست عزیز زمانی که شما برنامه ای مینویسید بهتره سعی کنید که با دید بازی و از دور یه نگاهی به کل کاری که قراره انجام بشه بندازی . این مهم نیست که منظور از انبار دقیقا چی هست . شما اینجوری فکر کن که برنامه ای برای کنترل کالا مینویسی . حالا همچین موقعی چندین حالت پیش میاد
1 - کالا وارد یکی از انبارها میشه .
2 - کالا از یک انبار به انبار دیگه فرستاده میشه .
3 - کالا به علت کیفیت نامناسب عودت داده میشه .
4 - کالا به علتی خراب میشه و از دست میره که باید از موجودی انبار کم بشه .
5 - کالا فروش میره .
6 - کالای فروخته شده به علتی پس گرفته میشه .
و غیره .....
این یه گوشه ای از احتمالات بود . حالا اگر شما برنامه ای برای یه فروشگاه مینویسید حالا اگر موجودی کالای حاظر در محیط فروشگاه جز کالای انبار شمرده بشه یا نه خیلی مهم نیست . مهم اینه که شما برنامه رو طوری بنویسید که اونها بتونن کالای محیط فروشگاه رو هم به عنوان یکی از انبارها کنترل بکنن . یعنی اینکه محیط فروشگاه هم دقیقا میتونه خاصیت یک انبار رو داشته باشه . یعنی کالا از یک انبار واقعی به محیط فروشگاه وارد میشه (انتقال کالا بین انبار) و در اونجا مثل یک انبار نگهداری میشه و در نهایت یا برگشت داده میشه یا فروخته میشه یا یکی از احتمالات دیگه .
------------
موفق باشید .

tik_tak
سه شنبه 22 مرداد 1387, 22:39 عصر
با سلام
ببينيد اينجوري جدولارو طراحي كردم
نظر بدين ممنون ميشم .

*.*.*.* انبــــــــــــــــــــــ ــــــــار *.*.*.**.*.*.**.*.*.**.*.*.**.**.*.*.**.*.*.**.*.* .*

جدول انبــــــــــــــــــارها = كد انبار # نام انبار # مكان انبار # توضيحات



جدول خريــــــــــــــــــــــ د = كد خريد # قيمت تمام شده # تاريخ خريد# فروشنده # خريدار



جدول كـــــــــــــــــالا ها = كد انبار# كد خريد # كدكالا # نام كالا # كشورسازنده # قيمت خريده شده #تعداد خريده شده #
تعداد منتقل شده به فروشگاه#تعداد موجود در انبار






*.*.*.* فروشـــــــــــــــــــــ ــگاه *.*.*.**.*.*.**.*.*.**.*.*.**.*.*.**.**.*.*.**.*.* .**.*.*.*

جدول گروه كــــــــالا ها =كد گروه # نام گروه



جدول كالا هاي فــــــــــــــــروشـــــ ــــگــــاه = كدگروه # كدكالا # نام كالا# قيمت خريده شده # قيمت براي فروش# تعداد



جـــــــــــــدول فروش
,
.
.
.

SYNDROME
چهارشنبه 23 مرداد 1387, 06:45 صبح
جدول كـــــــــــــــــالا ها = كد انبار# كد خريد # كدكالا # نام كالا # كشورسازنده # قيمت خريده شده #تعداد خريده شده #

در جدول کالا باید شما مواردی از کالا را وارد کنید که در آینده تغییر نکند.
مانند : کدکالا، نام کالا،کد انبار،واحد سنجش و ..
که کد انبار می تواند یک یا چند انبار باشد.
موفق باشید

amin_alexi
چهارشنبه 23 مرداد 1387, 07:46 صبح
البته در همنگام خرید شاید یک نفر 5 قلم جنس متفاوت بخره ....
شما چه طور اون رو در جدول خرید ثبت می کنی !!!!؟؟؟
جواب :
به نظر من 2 تا جدول کن که به هم وابسته باشه ... !!!
یعنی یکی Header و دیگری Detail ...
در Header اطلاعاتی چون تاریخ خرید ، کد خرید (یا کد فاکتور)، کد پیش فاکتور ، کد خریدار(تحویل گیرنده) ، توضیحات ، ...
در Detail اطلاعاتی چون کد کالا ، واحد ، قیمت واحد ، قیمت کل ،شرح بند ، تخفیف بند ، ...
که اینها به نوعی می تونه حد اقلها باشه .... که باز قابل تغییره ....
ولی در هر حال استفاده از دو جدول منطقی تره !

tik_tak
چهارشنبه 23 مرداد 1387, 09:54 صبح
در جدول کالا باید شما مواردی از کالا را وارد کنید که در آینده تغییر نکند.

ميشه بگيد چرا و به چه علت ؟
ببينيد من انبار رو اينجوري در نظر گرفتم كه با توجه به گفته هايي كه دوستان داشتن::
مكانهايي ست جدا از قسمت فروشگاه كه كالاها از اونجا به فروشگاه منتقل ميشه ، و
با اين حساب من 2 تا جدول كالا دارم يكي واسه انبار يكي ام واسه فروشگاه كه وقتي از انبار به فروشگاه كالايي وارد ميشه از تعدا كالا موردنظر در انبار كاسته ميشه


به نظر من 2 تا جدول کن که به هم وابسته باشه ... !!!

آره منم اينجوري فك كردم ولي واسه ايني كه جدولام كمتر باشه اومدم اونجوري در نظرگرفتم ،

اگه ديده باشيد اومدم تو جدول كالا كد خريد رو هم يه فيلد درنظر گرفتم ،

كد انبار# كد خريد # كدكالا # نام كالا # كشورسازنده # قيمت خريده شده #تعداد خريده شده #
تعداد منتقل شده به فروشگاه#تعداد موجود در انبار

كه به اون جدول خريد ربط داره يعني با هر خريدي به جدول كالامون جنس اضافه ميشه ،

و با فيلتر روي كدهايه خريد يه جور ميشه ريز فاكتور ايجاد كرد ...
حق با شماست اگه 2 تا باشه بهتره ..

پس من بايد واسه خريد (فاكتور ، ريز فاكتور ) 2 تا جدول جدا ايجاد كنم

و از فيلد كد خريدم واسه كالا فك نكنم ديگه لازم بشه ، به نظرتون باشه ؟

::::::پس جدولايه انبار اين شكلي شد ::::::::

جدول انبــــــــــــــــــارها = كد انبار # نام انبار # مكان انبار # توضيحات


جدول كـــــــــــــــــالا ها = كد انبار# كد خريد # كدكالا # نام كالا # كشورسازنده # قيمت خريده شده #

تعداد خريده شده #تعداد منتقل شده به فروشگاه#تعداد موجود در انبار


جدول خريــــــــــــــــــــــ د (فاكتور)= كد خريد # قيمت تمام شده # تاريخ خريد# فروشنده # خريدار


جدول ريز خريــــــــــــــــــــــ د (ريزفاكتور)= كدخريد#كد كالا#نام كالا#تعداد #قيمت

SYNDROME
چهارشنبه 23 مرداد 1387, 20:16 عصر
جدول معرفی کالا فقط کالاها را که باید در برنامه از آن استفاده کنیم تعریف می کنید و سپس در قسمتهای دیگر برنامه از اطلاعات آن استفاده کرده و مثلاً در زمان خرید کد کالا را ذخیره می کنیم و سپس تعداد و مبلغ کالا را به شکل همان Head و Detail ذخیره می کنیم.
در Detail اطلاعات کالا و تعداد و مبلغ و . .
در Headهم اطلاعات فروشنده و تاریخ و . . .
موفق باشید

رضا جاسبی
چهارشنبه 23 مرداد 1387, 22:45 عصر
به نظر من هنوز هم نمودار ER یکی از بهترین روشها برای طراحی دیتابیس است. در نمودار ER شما اول موجودیتها (Entity) رو باید تشخیص بدی و بصورت کاملا مستقل صفات اون رو در نظر بگیری. مثلا در مورد کالا قیمت و تعداد و فروشگاه و انبار جزو صفات کالا نیستند.
بعد ارتباط این موجودیتها (RelationShip) رو مشخص می کنیم و بعد این نمودار رو به جدول تبدیل می کنیم.
در یک تاپیک دیگه در مورد تبدیل ER به جدول گفتم که متاسفانه الان پیداش نمی کنم. از Elmasseri اگر اشتباه نکرده باشم نقل کرده بودم. اگر کسی بتونه پیداش کنه ممنون میشم. و اگر خواستید بهم اطلاع بدید که دوباره از اول بنویسم.
خودم پیداش کردم :
http://barnamenevis.org/forum/showpost.php?p=568887&postcount=10

tik_tak
چهارشنبه 23 مرداد 1387, 23:53 عصر
دوست خوبم Amir_Safideh (file:///G:/delppppppppppphiiiiiiii/member.php?u=50856)تو يه تايپيك ديگه در مورد فيلد تعدادكالاها در جدول كالاها نظرشون اين بود كه به نظرم درست گفتن :
اگر منظورتون از ستون "تعداد" نشون دادن تعداد کالای وارد شده به انبارتون هست بایدخدمتتون عرض کنم که این کار اساسا اشتباه هستش . شما ورود و خروج کالا رو باید درجدول دیگه ای ذخیره کنید که این جدول "ورود و خروج" فقط کد کالا رو در خودش ذخیرهمیکنه.
و
فقط یه توضیح کوچیک در مورد جدول ورود و خروج انبار بدم . این جدول میتونه فیلدیداشته باشه (مثلا یه فیلد از نوع Bit) که مثلا وفتی برابر 0 باشه متوجه بشید که اینرکورد در اصل ورود به انباره و وقتی 1 باشه متوجه بشید که خروج از انباره و یه فیلدبرای انبار یه فیلد برای کالا یه فیلد برای مشتری و ...

خب اگر من فيلد تعداد رو اينجوري در نظر بگيرم :
تعداددر جدول كالاها = تعدادكالايه موجود در انبار
وبا هر ورودي به فيلد تعداد اضافه بشه و با هر خروجي ازش كم بشه......فك كنم تا حدودي درست باشه ؟

جدول انبــــــــــــــــــارها = كد انبار # نام انبار # مكان انبار # توضيحات


جدول كـــــــــــــــــالا ها = كد انبار# كد خريد # كدكالا # نام كالا # كشورسازنده # قيمت خريده شده #تعدادكالايه موجود در انبار

جدول گردش كـــالا(ورودوخروج كالايه انبار)=كد انبار#كد كالا#نوع گردش(ورودياخروج)#تعداد#تاري خ

جدول خريــــــــــــــــــــــ د (فاكتور)= كد خريد # قيمت تمام شده # تاريخ خريد# فروشنده # خريدار


جدول ريز خريــــــــــــــــــــــ د (ريزفاكتور)= كدخريد#كد كالا#نام كالا#تعداد #قيمت


ممنون ميشم نظرتون رو بگيد.

SYNDROME
پنج شنبه 24 مرداد 1387, 07:24 صبح
دوست عزیز پس شما می خواهید مقدار موجودی را در یک فیلد نگه دارید و منظور از تعداد همان آخرین موجودی است.
پس برای کنترل چنین موجودی بهتر است از Trigger استفاده کنید.
ولی بهتر است کلیه عملیاتهای ورود و خروج کالا را در یک Table قرار دهید(البته با طراحی صحیح) تا هم با این روش با گرفتن Sum مقدار موجودی به دست بیاید و هم در کارتکس با مشکل پایین آمدن سرعت مواجه نشوید.
موفق باشید

tik_tak
پنج شنبه 24 مرداد 1387, 12:37 عصر
دوست عزیز پس شما می خواهید مقدار موجودی را در یک فیلد نگه دارید و منظور از تعداد همان آخرین موجودی است.
پس برای کنترل چنین موجودی بهتر است از Trigger استفاده کنید.
ولی بهتر است کلیه عملیاتهای ورود و خروج کالا را در یک Table قرار دهید(البته با طراحی صحیح) تا هم با این روش با گرفتن Sum مقدار موجودی به دست بیاید و هم در کارتکس با مشکل پایین آمدن سرعت مواجه نشوید.
موفق باشید

من در مورد تريگر سرچ كردم:


طراحی Trigger :
از نظر تئوری یک Trigger یک Event روی یک جدول یا View است که درصورتیکه هریک از عملیات اضافه ، تصحیح و حذف روی Object موردنظر صورت پذیرد بطور اتوماتیک برنامه طراحی شده اجرا خواهد شد. همچنین بر روی هر جدول یا View به هر تعداد می توان Trigger طراحی کرد دو نوع Trigger بنام های Instead Of , After روی هر یک از عملیات Delete ,UpDate , Insert متصور است
Trigger های از نوع After تنها برای جداول متصور هستند و پس از اینکه هریک از عملیات UpDate , Insert یا Delete صورت پذیرد این Event اجرا خواهد شد اما Trigger از نوع Instead Of هم برای جداول و هم برای View قابل طراحی است این Trigger جانشین دستور طراحی شده می گردد در واقع درصورتیکه این نوع Trigger مثلاً برای Insert طراحی گردد هیچ رکوردی به جدول اشاره شده اضافه نمی شود و درصورتیکه درنظر است عملیات جانشین رکوردها در جدول صورت پذیرد می بایستی درون Trigger این عمل انجام شود بنابراین می توان گفت که Trigger از نوع Instead Of می تواند برای کنترل های قبل از تغییرات در جدول بکار رود براساس توضیحات ارائه شده شکل کلی طراحی یک Trigger به صورت ذیل خواهد بود:


نام View یا نام جدول ON نام TriggerCreate Trigger
Instead Of یا After
[ Insert ] [ , ] [ UpDate ] [ , ] [ Delete ]
As

دستورات SQL




براساس شکل کلی دستور Trigger نکات ذیل قابل توجه است:
- برای View ها تنها می توان از Trigger از نوع Instead Of استفاده نمود.
- برای هر ترکیبی از Delete , UpDate , Insert می توان Trigger روی جدول یا View طراحی کرد.
- تعداد Trigger های طراحی شده به هر تعداد است پس از وقوع Event کلیه Trigger های طراحی شده برای اتفاق موردنظر یکی پس از دیگری اجرا می گردد و پیش فرض آن ترتیب ایجاد Trigger هاست و در صورتیکه نیاز است ترتیب تغییر داده شود از یک SP بنام SP_SettriggerOrder و با پارامترهای نام Firs/Last , Trigger و نوع اتفاق می بایستی استفاده گردد.
- برای هر دستور با هر تعداد رکوردی که مورد پردازش قرار می گیرد تنها یکبار Trigger اجرا می گردد بعنوان مثال درصورتیکه 100 رکورد در یک جدول در حال UpDate شدن باشند تنها یک بار Trigger مربوط به UpDate اجرا خواهد شد.


( 55 )
- درون یک Trigger طراحی شده دو جدول مقیم در حافظه بنام های Deleted , Inserted در دسترس می باشند که رکوردهای مورد پردازش را در اختیار برنامه نویس تحت شرایط ذیل قرار می دهند.



از تعداد رکوردهای دو جدول مذکور می توان به نوع Trigger پی برد.
- اطلاعات درون جداول Deleted , Inserted تحت هیچ شرایطی توسط برنامه نویس قابل تغییر نمی باشند.
- درون یک Trigger نمی توان عملیات ایجاد ، تغییر و حذف یک پایگاه داده را انجام داد وتنها دسترسی به Object های پایگاه داده کنونی مقدور است.
- به منظور سازگاری با نسخه های قبلی SQL Server از کلمه For بجای After نیز می توان استفاده نمود.
- در Trigger از نوع Instead Of در صورتیکه روی جدول FK وجود داشته باشد قابل پیاده سازی نمی باشد.
- تابع ( نام ستون ) UpDate تعیین می کند که در فرآیند UpDate آیا ستون اشاره شده در حال تغییر است.
- تابع Columns_UpDate ( ) که یک مجموعه بیتی است در فرآیند UpDate تعیین می کند که چه ستون هائی در حال تغییر هستند.
- درون یک Trigger مقدار @@RowCount تعداد رکوردهای مورد پردازش را تعیین می کند.
- موضوع Recursive در زمانیکه دو جدول که دارای Trigger می باشند و در Trigger یکی تغییرات دیگری مدنظر قرار گرفته است باید پیش بینی گردد.
نميدونم درست ميگم يانه ...
يعني از تريگر استفاده كنم تا وقتي تو جدول ورود وخروجم كالايي وارد يا خارج ميشه به طور خودكار
از جدول كالام هم اضافه يا ديليت بشه ؟؟
من زياد معني ومفهموم تريگر و متوجه نشدم ...
ميشه رو جدولايي كه دارم يه راهنمايي م كنيد ؟
متشكر

SYNDROME
پنج شنبه 24 مرداد 1387, 19:33 عصر
من زياد معني ومفهموم تريگر و متوجه نشدم ...
ميشه رو جدولايي كه دارم يه راهنمايي م كنيد ؟
متشكر


دوست عزیز Trigger یک رویداد است.
این رویداد زمانی که عملیات Delete,Insert,Update اتفاق بیفتد فراخوانی شده و می تواند قبل و یا بعد از اعمال عملیاتهای فوق اجرا شود.
مثلا زمانی که شما یک رکورد را اضافه می کنید تریگر Insert فراخوانی می شود و شما می توانید مثلا به مقدار موجودی خود در جدول کالا اضافه کنید.
بهتر است از روی یک کتاب مفهوم و کارایی Trigger را بخوانید و اشکالات خود را اینجا مطرح کنید.
موفق باشید

tik_tak
پنج شنبه 24 مرداد 1387, 23:41 عصر
با سلام
طبق يه مثالي كه خوندم دستوراتش فك كنم اينجوري باشه :


Create Trigger III On jadval_e_gardesh_e_kalaha


After Insert AS
دستورات جهت اضافه شدن يا كم شدن تعداد كالاها توجدول كالاها؟

كه اگه ورود كالا داشتيم جمع بشه و اگه خروج كالا داشتيم از اين تعداد كم بشه
كه تشخيص ورودي يا خروجي بودن اجناس از رويه يه فيلد حالت جدول گردش كالا صورت ميگيره
مثلا اگه اين فيلد مقدارش 1 باشه ورود كالاست واگر منفي 1 باشه خروج كالاست
درسته؟؟؟؟؟

SYNDROME
جمعه 25 مرداد 1387, 08:11 صبح
درسته.
باید سه تا تریگر Insert،Delete،Update بنویسید.
در زمان اضافه شدن و یا حذف داده ها برای هر Table یا جدول Inserted ایجاد می شود که داخل آن کلیه رکوردهای اضافه شده به جدول لیست می شود و شما باید با ایجاد یک کرسر بر روی این جدول رکورهایی را که اضافه شده است به موجودی کالا اضافه یا کم کنید.
در زمان Delete هم جدول Deleted کلیه رکوردهای حذف شده از جدول را نگه داری می کند.
به این نکته توجه کنید که Update شامل عمل Delete و Insert است و در این Trigger هر دو جدول deleted و Inserted پر می شود.
موفق باشید

sarkhosh
یک شنبه 03 شهریور 1387, 23:20 عصر
جدول كـــــــــــــــــالا ها = كد انبار# كد خريد # كدكالا # نام كالا # كشورسازنده # قيمت خريده شده #تعدادكالايه موجود در انبار

.
tik tak عزیز
نمیشه جدول کالا فقط 3 فیلد رو دربر داشته باشه
نام کالا
آی دی کالا
آی دی گروه کالا
مقسیMeghsi

tik_tak
دوشنبه 04 شهریور 1387, 11:38 صبح
مقسی یعنی چی ؟

sarkhosh
دوشنبه 04 شهریور 1387, 22:29 عصر
یعنی ممنون
مرسی
فرانسه گفتم:d
حالا یه سوال
من متوجه نشدم چرا کد خرید رو هم در تیبل کالا قرار دادی؟هر بار که یه کالا رو اضافه می کنی باید کد خرید رو هم وارد کنی؟؟!!

tik_tak
دوشنبه 04 شهریور 1387, 23:28 عصر
جداًخب یه کلمه فرانسه ام یاد گرفتیمرو اون جداول فک نکنید چون خیلی عوضشون کردم .....از توجه تون ممنونم