الانتقال إلى المحتوى

مشاركة في : تحليل نظام مبيعات ومشتريات ومخازن


anas.soft

Recommended Posts

السلام عليكم مشرفين واعضاء منتدنا الغالي 

في الحقيقة قرارت ان افتح هذا الموضوع  وقد يكون متكرر ولكني اطمح من خلال هذا الموضوع ان بتم تجوز كل السليبات والتركيز بالايجابيات والخبرات المتركمة في هذا المجال من اجل ان يكون مرجع لكل طلبة العلم في هذا التخصص    

 

                                                         " تحليل نظام مبيعات ومشتريات ومخازن "

 

وسنبداء مباشرة في عمل الجدول وهي كالتالي :

جدول الدول 

رقم الدولة  PK

اسم الدولة عربي 

اسم الدولة انجليزي 

اسم الجنيسية عربي 

اسم الجنسية انجليزي 

مفتاح الدول 

 

جدول المدن 

رقم الدولة FK

رقم المدينة PK

اسم المدينة عربي 

اسم المدينة انجليزي 

مفتاح المدينة 

 

جدول العملات 

رقم العملة  PK

اسم العملة عربي 

اسم العملة انجليزي 

سعر التكلفة الحالي

سعر التحولي الحالي 

تاريخ اخر سعر تحويل 

 

جدول انواع الشركات

رقم نوع الشركة PK

اسم نوع الشركة عربي 

اسم نوع الشركة انجليزي

 

جدول الشركات 

رقم الشركة PK

رقم نوع الشركة FK

رقم الدولة FK

رقم المدينة FK

اسم الشركة عربي 

اسم الشركة انجليزي

لوجو الشركة 

نشاط الشركة 

رقم السجل التجاري 

تاريخ بدية  السجل التجاري 

تاريخ نهاية السجل التجاري 

العملة الافترضية للشركة FK

 

 

جدول نشاط الشركة 

رقم نشاط الشركة PK

رقم الشركة FK

اسم نشاط الشركة عربي 

اسم نشاط الشركة انجليزي 

الحاله 

 

 

جدول فروع الشركة

رقم فرع الشركة PK

رقم الشركة FK

رقم الدولة FK

رقم المدينة FK

اسم الفرع عربي 

اسم الفرع انجليزي 

تاريخ افتتاح الفرع 

ملاحظات

 

 

جدول المستخدمين 

رقم المستخدم PK

سيريال المستخدم PK

اسم دخول المستخدم

كلمة مرور دخول المستخدم 

الوصف الوظيفي للمستخدم 

نوع المستخدم 

حالة المستخدم 

 

مجموعات الاصناف

رقم المجموعة PK

اسم المجموعة عربي 

اسم المجموعة انجليزي

ملاحظات

 

الاصناف 

رقم الصنف PK

رقم المجموعة FK 

الباركود PK

اسم الصنف عربي 

اسم الصنف انجليزي 

الوحده

الكمية 

الرصيد الافتتاحي 

سعر التجزئة 

سعر الجملة 

تاريخ الانتهاء

بلد التصنيع FK

الشركة المصنعة FK

الحد الاعلى 

الحد الادنى 

 

 

هذه جدول اولية قابلة للنقاش والتعديل ارجو من الخبراء المشاركة في التحليل كي تعم الفائدة في المنتدا وخصوصاً للاخوة المبتدين 

تم تعديل بواسطة anas.soft
رابط هذا التعليق
شارك

وعليكم السلام ورحمة الله وبركاته

هلا فيك يا مهندس انس ..

 

بداية قويه وموضع مهم للبرمجين .

وأتمنى ان تستمر وأن يوفقك الله لإتمام هذا المشروع ..

 

وامل وضع آليه لعمل .

مثل المدة الزمنية 

عدد المشتركين (( 2 محلل - 3 مبرمجين -1 DBA -....)) 

يتم عمل يوم ويتم وضع فيه المشاركة 

عمل إيمل خاصة لهذا المشروع لمن أردا أن يستفسر أو يتواصل 

 

وامل من جميع المبدعين الإنضمام والمساهمة وإخراج عمل متكامل بإذن الله..

 

تحياتي لكم..

رابط هذا التعليق
شارك

ياهلا بمشرفنا المبدع " المبرمج الصاعد "

 

في الحقيقة الموضع مفتوح للجميع ولمن يرغب بالمشاركة فقط يرسل رد على نفس الموضوع 

اما بالنسبة للمدة الزمنية فسيتم تحديدها بناء على عدد المشاركين ونشاطهم 

 

وفي حال تم استوفاء المشاركين سيتم انشاء ايميل لذلك 

 

لك وللجميع خالص الشكر والتقدير 

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله 

 

يسعدني المشاركة معكم والمتابعة ... 

 

فيما يخص جدول الدول وجدول المدن 

بالتأكيد يوجد ربط بينهما 

ولكن في جدول المدن سيكون مفتاح الجدول مركب من رقم الدولة ورقم المدينة  معا composite key

وليس رقم المدينه فقط  ... هو مفتاح الجدول

 

وفي جدول بيانات الشركات 

تستخدم ( رقم الدولة ورقم المدينة ) معا كمفتاح اجنبي foreign key مع   مفتاح جدول رموز المدن ( رقم الدولة + رقم المدينة ) معا 

ولا يكون الربط منفردا مع رقم الدولة فقط في جدول الدول

أو رقم المدينة فقط في جدول المدن 

 

على سبيل المثال 

توجد مدينة Cairo في Egypt

ومدينة Cairo في USA

رابط هذا التعليق
شارك

 

تحيه و احترام  الاستاذ  امجد حلمي , فأنت قيمه معرفيه كبيره و صاحب تجربه متميزه.

والهدف المشترك ان نتبادل المعرفه و نساهم في بلوره فريق عربي نفتخر به ,  خدمه للاجيال الصاعده التي تكتسب من امثالك المبدعين الخبره و التجربه الثريه.

 

اما بالنسبة للملاحظاتك فقد تم انشاء الجدول مع تعديلاتكم القيمة وهي في المرفق  : 

 

انتظر ملاحظاتكم ولدي استفسارين 

 

1- هل يفضل دمج جدول انواع الشركات وجدول نشاطات الشركات في جدول الشركات بحث تكون حقول ضمن جدول الشركات ( نوع الشركة , نشاط الشركة ) ام الافضل ندعها كما في المرفق جدولين مرتبطين بجدول الشركات

2- هل يفضل ان تكون المرحلة القادمة تحليل للمشتريات ام للمستودعات 

 

 

لك وللجميع خالص الاحترام والتقدير 

 

purchasing_system_table.txt

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله ......

 

 اقترح ان يتم اضافة جدول الاحياء داخل المدينة 

وان يكون هناك مفتاح مركب  composite key

في جدول الاحياء يتكون  المفتاح المركب من الدولة والمدينة والحي 

وهذا المفتاح يكون مفتاح اجنبي fk في جدول الشركات وجدول الفروع ..

 

والاستاذ امجد اكيد خبرتو واسعة ويفيدنا باشياء مفيدة في الموضوع ......

واتمني اتمام الموضوع بالصورة الصحيحة وانا ساكون احد المشاركين ......

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله

سيكون لديك جدول رموز انواع الانشطه
رمز النشاط ، وصف النشاط ، ....

بافتراض ان الشركة يمكن ان تمارس اكثر من نوع نشاط مثل نشاط الاعمال الكهرباءية ونشاط الاعمال الالكترونيه

سيتم انشاء جدول جديد انشطه الشركة
ومفتاح الجدول مركب من رقم الشركة ورمز نوع النشاط
مع اضافة حقل جديد لحالة النشاط مثل ساري . متوقف . تحت التأسيس
والعلاقة ستكون one to many بين الشركة والانشطه
اي ان كل شركة ممكن ان يكون لها نشاط واحد أو أكثر

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله 

 

ملاحظة : هل قمت بتنفيذ الأوامر المذكورة في الملف السابق ؟ ... حيث يوجد أخطاء في اوامر انشاء الجداول والعلاقات بينها ... رجاء التصحيح 

 

 

جدول المدن

create table basic_city (city_id number(5) ,
country_id number(3) ,
city_name_a varchar2(50) not null,
city_name_e varchar2(50),
city_key number(8) ,


constraint city_composite_pk primary key(city_id,country_id));
جدول الفروع للشركة 
create table basic_branchs(bnch_id number(5) constraint bnch_id_pk primary key,
bnch_comp_id number(5) ,
constraint bnch_comp_id  FOREIGN KEY (comp_id) references basic_company (comp_id) ,
bnch_country_id number(3) ,
constraint country_id_fk  FOREIGN KEY (bnch_country_id) references basic_country (country_id) ,
bnch_city_id number(5) ,
constraint city_id_fk   FOREIGN KEY (bnch_city_id) references basic_city (city_id) ,
bnch_name_a varchar2(100) not null,
bnch_name_e varchar2(100),
bnch_notes varchar2(300),
bnch_open_date date);
مطلوب تعديل ربط دولة ومدينة الفرع مع جدول المدن ... حتى يكون الربط مع المفتاح المركب لجدول المدن والمكون من الدولة والمدينة 
ولا يتم ربط الدولة مع جدول الدول بشكل منفصل وايضا لا يتم ربط المدينة مع جدول المدن بشكل منفصل 
 
مع العلم انه لايمكن تنفيذ امر إتشاء جدول الفروع لوجود شرط لا يمكن تحقيقه
وهو شرط الربط مع جدول المدن 
حيث ان مفتاح جدول المدن مركب من الدولة والمدينه 
في حين أن أمر الربط في جدول الفروع على المدينة فقط 
فهل بالفعل تم انشاء العلاقة بين الجدولين بشكل صحيح على قاعدة البيانات ؟؟
 
-----------------------
ملاحظة
جدول الأصناف المشتراه pur_items
يوجد أكثر من مفتاح للجدول ... primary key 
وهذا خطأ 
- رقم الصنف 
- رقم الباركود 
------------------------------
جدول adm_users
يوجد أكثر من مفتاح للجدول 
user_id
user_serial 
وهذا خطأ
وبالتالي أي ربط مع هذا الجدول adm_users  لن يتم تنفيذه مثل جدول 
PUR_GROUPS
PUR_ITEMS
رابط هذا التعليق
شارك

  • بعد 2 أسابيع...

السلام عليكم الاستاذ الفاضل امجد حلمي 

 

تم التعديل وفق لملاحظاتكم الدقيقة والقيمة وتمت المرجعة و انشائها على قاعدة بيانات وكذلك اضافة بعض الجدول كا التالي :

 
 


*************************************1- basic_country***************************************************************

create table basic_country(country_id number(3) constraint country_id_pk primary key,
country_name_a varchar2(50) not null,
country_name_e varchar2(50) not null,
nation_name_a  varchar2(50) not null,
nation_name_e  varchar2(50) not null,
country_key number(8) constraint country_key unique);


**********************************2- basic_city **********************************************************************

create table basic_city (city_id number(5) not null,
country_id number(3) not null ,
city_name_a varchar2(50) not null,
city_name_e varchar2(50),
city_key number(8) ,
constraint city_composite_pk primary key(city_id,country_id));

************************************3- basic_blocks********************************************************

create table basic_blocks (block_id number(3) constraint basic_blocks_block_id_pk primary key,
country_id number(3) NOT NULL ,
city_id number(5) NOT NULL ,
block_name varchar2(50),
block_note varchar2(150),
constraint city_id_fk   FOREIGN KEY (city_id,country_id) references basic_city (city_id,country_id));



*********************************4- basic_currency*************************************************************

create table basic_currency
(curr_code number(3) constraint currency_curr_code_pk primary key,
curr_name_a varchar2(5) not null,
curr_name_e varchar2(5) not null,
curr_sale_rate number(12,5),
curr_cost_rate number(12,5),
last_rate_update date);



************************************5- basic_currncy_rates***********************************************************

CREATE TABLE basic_currncy_rates
  (curr_code number(3) constraint currncy_rates_curr_code_fk references basic_currency(curr_code),
  trans_date date default sysdate,
  cost_rate number(12,5)not null,
  sale_rate number(12,5)not null);
 

***********************************6- basic_company_types*******************************************************

create table basic_company_types
  (comp_type_code    NUMBER(2 )  CONSTRAINT company_types_pk PRIMARY KEY,
  comp_type_desc_a  VARCHAR2(50 )  NOT NULL,
  comp_type_desc_e  VARCHAR2(50 )  NOT NULL);

  

***********************************7- basic_company*******************************************************************


create table basic_company (comp_id number(5) constraint comp_id_pk primary key,
country_id number(3),
city_id number(5) ,
block_id number(3),
comp_name_a varchar2(200) not null,
comp_name_e varchar2(200),
comp_logo blob,
comp_activity varchar2(200),
comp_cr varchar2(30),
comp_cr_date date,
comp_cr_expiry_date date,
default_curr_code number(14)constraint company_curr_code_fk references basic_currency(curr_code),
computer_no number(12),
comp_dpmain varchar2(10),
comp_open_date date,
comp_address varchar2(100),
comp_phone number(14),
comp_postbox varchar2(15),
comp_email varchar2(50),
comp_wbsite varchar2(50),
constraint company_fk foreign key (block_id) references basic_blocks(block_id),
constraint composite_company_fk  foreign key (city_id,country_id)  references basic_city(city_id,country_id));


***********************************8- basic_actividades****************************************************

CREATE table comp_activities
(
  activ_country_id number(3) constraint country_id_fk references basic_country(country_id),
  activ_CODE    VARchaR2(2 )  not null,
  activ_name_a  VARCHAR2(45 ) not null,
  activ_name_e  VARCHAR2(45)not null,
  activ_flag    number(2)
);
 

**********************************9-  basic_branchs******************************************

create table basic_branchs(bnch_id number(5) constraint bnch_id_pk primary key,
bnch_comp_id number(5) constraint bnch_comp_id references basic_company(comp_id),
country_id number(3),
city_id number(5),
block_id number(3),
bnch_name_a varchar2(100) not null,
bnch_name_e varchar2(100),
bnch_notes varchar2(300),
bnch_open_date date,
constraint branch_composite_fk foreign key (city_id,country_id)references basic_city(city_id,country_id),
constraint branch_fk foreign key (block_id) references basic_blocks(block_id));




**************************************************10- adm_users**************************************


create table adm_users (user_id number(5) constraint user_id_pk primary key,
user_serial number(10) constraint user_serial_pk unique,
user_access_name varchar2(80) not null,
user_access_pass varchar2(30) not null,
user_job_desc varchar2(100),
user_type number(3),
user_status number(2));



*********************************11- pur_groups**************************************************


create table pur_groups (gp_id number(8) constraint groups_gp_id_pk primary key ,
gp_name varchar2(100) not null,
gp_notes varchar2(500),
user_id number(5) constraint user_id_fk references adm_users(user_id) on delete cascade);



***********************************12- pur_ITEMS*******************************************************


create table pur_items (item_id number(15) constraint items_item_id_pk primary key,
gp_id number(8) constraint items_gp_id_fk  references pur_groups (gp_id) on delete cascade,
item_barcode number(30) constraint items_item_barcode_uni unique,
item_name varchar2(200) not null,
item_qnt varchar2(100),
item_unit varchar2(50),
item_open_balance number(20,2),
item_price_piece number(20,2),
item_price_dozen number(20,2),
item_exp_date date,
item_country_id number(3) constraint item_country_fk references basic_country(country_id) on delete cascade,
item_comp_id  number(5) constraint item_comp_id_fk references basic_company(comp_id) on delete cascade,
item_maximum varchar2(50),
item_minimum varchar2(50),
user_id number(5) constraint item_user_id_fk references adm_users(user_id) on delete cascade);

*******************************************13 - hur_employee*********************************************************


create table hur_employee (emp_id number(5) constraint employee_emp_id_pk primary key,
emp_name_a varchar2(100),
emp_name_e varchar2(100));

******************************************14- str_store**********************************************

create table str_store (store_id number(3) constraint str_store_store_id_pk primary key,
store_name_a varchar2(70),
store_name_e varchar2(70),
store_keeper number(5) constraint str_store_store_keeper_pk references hur_employee(emp_id) on delete cascade,
store_phone_no varchar2(14),
store_size varchar2(20));

***************************************************************15- pur_supply********************************************

create table pur_supply (supply_id number(5) constraint pur_supply_supply_id_pk primary key,
supply_name_a varchar2(200),
supply_name_e varchar2(200),
supply_address varchar2(200),
supply_phone number(14),
supply_email varchar2(80),
supply_website varchar2(150),
supply_representative1 varchar2(100),
supply_representative2 varchar2(100),
supply_representative3 varchar2(100));


**************************************************************16- sales_customer***************************************

create table sales_customer (customer_id number(5) constraint sales_customer_id_pk primary key,
customer_name_a varchar2(150),
customer_name_e varchar2(150),
customer_adderss varchar2(200),
customer_phone number(14),
customer_email varchar2(80),
customer_website varchar2(60),
customer_type number(2));



**********************************************************17- pur_invoice_master************************************

create table pur_invoice_master (invoice_id number(14) constraint pur_invoice_master_pk primary key,
invoice_date date,
supply_id number(5) constraint inv_master_sup_id_fk references pur_supply(supply_id),
customer_id number(4) constraint inv_master_cus_id_fk references sales_customer (customer_id) ,
invoice_type number(2),
company_id number(5) constraint inv_master_comp_id_fk references basic_company(comp_id));


*******************************************************18- pur_invoice_detail*******************************************
create table pur_invoice_detail
(invoice_id number (14) constraint pur_inv_detail_inv_id_fk references pur_invoice_master(invoice_id),
item_id number(15) constraint pur_inv_detail_item_id_fk references pur_items(item_id),
item_unit number(2),
item_quantity number(5),
item_price_unit number(10),
item_discount number(5));

 

شاكر ومقدر حسن تعاملكم وحرصكم على نشر المعرفة وفي انتظار ملاحظاتكم .

تم تعديل بواسطة anas.soft
رابط هذا التعليق
شارك

السلام عليكم ورحمة الله 

 

توجد 3 جداول بدون مفتاح اساسي PK

 

BASIC_CURRNCY_RATES
 COMP_ACTIVITIES
PUR_INVOICE_DETAIL
 
توجد علاقات بين الجدوال ... غير موجودة
 
حسب الرسم المرفق 

stock_muntada_pdm.jpg

رابط هذا التعليق
شارك

وعليكم السلام ورحمة الله استاذنا امجد ....

 

لدي استفسار عن ماهي فائدة اضافة pk علي جدول PUR_INVOICE_DETAIL

مع اعتقادي انه يعتبر detail للجدول   PUR_INVOICE_MASTER

 

 

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله

بداية ... اي جدول يجب ( في معظم الأحيان )  ان يكون له مفتاح اساسي PK وذلك لعدة اسباب منها ....

- انه يكون معرف وحيد للجدول
- لا يمكن تكرار قيمة المفتاح الاساسي للجدول
- يمكن ربط الجدول بجدوال أخري ...  وبالتالي يحقق خاصية تجانس وترابط  البيانات بين الجداول 
- سرعه التعامل مع البيانات وخاصة في الجداول التي تحتوي بيانات كتيرة ... لإنشاء index تلقائي عند تنفيذ انشاء مفتاح الجدول 

- المفتاح الأساسي للجدول لا يحتوي قيمة null 

 

من المفترض ان يكون المفتاح الأساسي للجدول التفصيلي من نوع composite key مفتاح مركب من  عمودين ( رقم الفاتورة + رقم الصنف ) 


وبالنسبة للجدول المذكور وهو جدول البيانات التفصيلية للفاتورة وهو يمثل علاقة مع جدول البيانات الاسية للفاتورة من نوع one to many 

وفي حالة عدم وجود مفتاح اساسي سيمكن تسجيل نفس الصنف اكثر من مرة في نفس الفاتورة وذلك حسب متطلبات العمل في النظام وهو بإفتراض عدم السماح بتسجيل نفس الصنف داخل الفاتورة اكثر من مرة ...
- بشكل عام في حالة وجود علاقة بين جدولين ... هذا لا يعني عدم إعداد مقتاح اساسي للجدول المرتبط بالجدول الأساسي  ... وخاصة في نوع العلاقات من نوع  one to many 

رابط هذا التعليق
شارك

  • بعد 4 أسابيع...
  • بعد 3 أسابيع...

السلام عليكم ورحمة الله 

 

يسعدني المشاركة معكم والمتابعة ... 

 

فيما يخص جدول الدول وجدول المدن 

بالتأكيد يوجد ربط بينهما 

ولكن في جدول المدن سيكون مفتاح الجدول مركب من رقم الدولة ورقم المدينة  معا composite key

وليس رقم المدينه فقط  ... هو مفتاح الجدول

 

وفي جدول بيانات الشركات 

تستخدم ( رقم الدولة ورقم المدينة ) معا كمفتاح اجنبي foreign key مع   مفتاح جدول رموز المدن ( رقم الدولة + رقم المدينة ) معا 

ولا يكون الربط منفردا مع رقم الدولة فقط في جدول الدول

أو رقم المدينة فقط في جدول المدن 

 

على سبيل المثال 

توجد مدينة Cairo في Egypt

ومدينة Cairo في USA

مش المفروض يا بمشهندس العلاقة بين المدن والدول many to many ويبقوا 3 جداول مش 2 ؟

رابط هذا التعليق
شارك

  • بعد 5 شهور...

حقييقتاً اشكر جميع الاعضاء

وجزاكم الله الف خير لما تقدمولنا  

ولكن في هذا المشروع على اي اساس سيتم بناء هذا النظام وماهي الاهداف التي سيتم تحقيقها 

وماهي المميزات في هذا النظام .

وشكـــــــــــــــــــــــــــــراً 

رابط هذا التعليق
شارك

  • بعد 1 شهر...

اضف الى ملاحظات  الاستاذ امجد انه يجب اضاقة حقل تاريخ الفاتوره كمفتاح اساسي لجدول الفواتيرالتفصيلي بحيث يكون المفتاح الأساسي رقم الفاتورة ورقم الصنف وتاريخ الفاتورة

بحيث ان الصنف لا يتكرر بنفس الفاتوره وبنفس اليوم

رابط هذا التعليق
شارك

حقييقتاً اشكر جميع الاعضاء

وجزاكم الله الف خير لما تقدمولنا  

ولكن في هذا المشروع على اي اساس سيتم بناء هذا النظام وماهي الاهداف التي سيتم تحقيقها 

وماهي المميزات في هذا النظام .

وشكـــــــــــــــــــــــــــــراً 

السلام عليكم 

 

هذه المشاركة لنقل العلم  والخبرات المتركمة في هذا المجال من اجل ان يكون مرجع لكل طلبة العلم والباحثين في هذا التخصص   

رابط هذا التعليق
شارك

اضف الى ملاحظات  الاستاذ امجد انه يجب اضاقة حقل تاريخ الفاتوره كمفتاح اساسي لجدول الفواتيرالتفصيلي بحيث يكون المفتاح الأساسي رقم الفاتورة ورقم الصنف وتاريخ الفاتورة

بحيث ان الصنف لا يتكرر بنفس الفاتوره وبنفس اليوم

اعتقد انه في حالة عمل رقم الفاتورة ورقم الصنف مفتاح اساسي مركب لن يتم تكرار الصنف بنفس الفاتورة  وفي نفس اليوم ايضاء من دون الحاجة لجعل تاريخ الفاتوره مفتاح اساسي

تم تعديل بواسطة anas.soft
رابط هذا التعليق
شارك

  • بعد 10 شهور...
  • بعد 2 أسابيع...

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية