الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

يعني (اثنين primary key في جدول واحد)

مغلق
بدأه madatata في 30 أكتوبر 2003 · 23 رد · 6,779 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هل يمكن في جدول واحد عمل primary key ل.. 3column و primary key ل..column5

يعني (اثنين primary key في جدول واحد)

أنا جربتها وفشلت!!!!!

ايش هو السبب؟؟؟؟

#2

أخي العزيز مايصير برايمري كي اثنين في جدول واحد ,,,,,,,

اولاً لأنه يعني المفتاح الاساسي ولا يمكن ان يكون هناك مفتاحين اساسيين في جدول واحد .... لكي تكون البيانات غاية في الدقه :)

وشكراً

#3

يا اخي هذا ممكن طبعاُ اذا دعت الضرورة لهذا

create table details

)

id number ,

name varchar2(50 (,

constraint pk_det primay_key (id,name));

#4

هلا والله اخوي madatata

طبعا تستطيع ذلك وتستطيع عمل برايمري كي لكل حقول الجدول حتى ولو كانت 100 حقل

ولكن اعتقد له لمت او حد معين يجب ان لايزيد عنه ولكن اعتقد انك لن تصل إلى هذى الحد

المهم الطريقة كالتالي:

CREATE TABLE table_name
(c1 NUMBER(10),
 c2 NUMBER(10),
 c3 NUMBER(10),
 c4 NUMBER(10),
 CONSTRAINT table_name_PK PRIMARY KEY (c1,c2,c4,c4));

إن شاء الله تكون الطريقه واضحه واي استفسار انا يالخدمه

تحياتي لك

شبيــــــــه الريح

#5

ممكن انه يكون بالجدول اكثر من برايمري كي واحد .,.,.,., يعنى بيكون

كومبوزد كي = مكون من اكثر من برايمري كي واحد

مثال : رقم السياره مكون من رقم + رمز المنطقه .,.,.,

:: اللهم اغفر لي ولوالدي .. وللمسلمين والمسلمات .. ااحياء والاموات منهم .. ::

#6

سلام عليكم

ويعطيكم الف عافية

انا معكم بالراي يا جماعة ولكن عندي ملاحظة صغيرة لتوضيح المفاهيم ....

اي جدول لا يحتوي الا على PRIMARY KEY واحد فقط فلا يمكن ان يحتوي الجدول على اكثر من PRIMARY KEY واحد ولكن ال PRIMARY KEY ممكن ان يكون مكون من عمود واحد او اكثر ....... وفي هذه الحالة نقول ان ال PRIMARY KEY مكون من اكثر من ATTRIBUTE اي اكتر من عمود ..... وليس من الصحيح ان نقول ان الجدول يحتوي ع اكثر من PRIMARY KEY .......

وجزاكم الله الف خير

#7

انا مع الاخت مبرمجه لان معنى مفتاح اساسى اى ان يكون

فريد فمثلا رقم العربه والمنطقه التى بها يمكن تكرار الرقم لكن مع مناطق اخرى

وبلمثل للمنطقه لكن مع ارقام اخرى

ولا يتم تكرارهم معا فى RECORD آخر

وبهاذا يسمى العمودين معا مفتاح اساسى

#8

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

حياكم الله جميعاً شباب ومشكورين على هالاهتمام

مشكور أخواني:شبيـــه الريح،sasha :: على المثال جربته!

طبعاً القاعدة الاساسية تقول أنه لابد أن يكون هناك PK مفتاح أساسي واحد

والتأكيد على و(احد فقط)

مثال:جدول تكويد الدول والمدن

كود الدولة

اسم الدولة

كود المدينة

اسم المدينة

ولو اعتبرنا ان هذا جدول واحد، فلنأخذ كود الدولة=PK

لكن لاينفع كود المدينة ان يكون PK آخر (عملياً ينفع، منطقياً وصحة عمل لا ينفع_عن تجربة)

لكن ممكن تستخدم خاصيةunique لباقي الColumn سواء كانت

أرقام او حروف فمع هذه الخاصية لايمكن التكرار

دايماً أخواني لا تحرمونا أرائكم ومناقشاتكم

هذا والله أعلم

لكن المشكلة الحين في تصميم الفورمة لهذا الجدول

الله يعين

#9

هلا والله اخوتي المبرمجه

كلامك صحيح 100%

ويسمى كمبزت كي او المفتاح المركب

==========

هلا والله اخوي madatata

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

شوف انا فهمت انت راح توصل لأيش

ولكن كلامك غير صحيح فمن نظام إلى نظام يختلف احتياجك إلأى هذه الاشيا

وراح اعطيك مثال إن شاء الله يكون مقنع

=======

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

مثل أأأ 111 و ب ب ب 222 وهكذا

المهم راح يكون عندي حقلين في الجدول

الاول رقم السيارة والثاني حروف السيارة

فبالتأكيد كلهم راح يكونون جزئين في البرايمري كي

واذا حاب امثلة زيادة انا حاضر

تحياتي لك

شبيـــــــه الريح

#10

السلام عليكم......

بس حبيت احكي جزاكم الله الف خير ع المجهودات الرائعة .......

وان شاء الله تكون في ميزان حسناتنا جميعاااااااااااا......

تمنياتي للجميع بالتوفيق

#11

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

أخي: شبيـــه الريح

والله غلبتني معاك!!!!

يعني الحين انت جربت حقل للأرقام وحقل للحروف والاثنين (PK)

وعملت لها فورمة، واشتغلت معك صح؟؟؟؟؟!!!!!100%

قل كيف عاد صارت معك هاذي

يا ليت توضح

وآخيراً مشكور حتى الثمالة

أخوك

#12

هلا والله اخوي

نعم لدي اكثر من مشروع فيهم اكثر من برايمري بجدول واحد

انت جرب واعرض تجربتك

تحياتي لك

شبيـــــــه الريح

#13

السلام عليكم

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

اولا يبدو ان البعض لايفرق بين الجدول (Entity) وبين جدول العلاقه (Relation) والتي تنتج بسبب العلاقه Many-To-Many والتي يوجد بداخلها اثنين Primary Key .

اما هل يوجد اثنين Primary Key في جدول واحد فالجواب نعم ممكن وهذا مايسمى بالاعتماد الدالي الكلي مثلا : X تحدد Y اي ان لو حذفنا اي حقل من X فأنه يؤدي الى عدم فاعلية Y .

اما الاعتماد الجزئي فانه عند حذف حقل واحد لايؤدي الى عدم فاعلية Y مثال :

EmpID and ProjectNo يحددان الـ Ename فلو حذفنا ProjectNo لايؤدي الى ضياع الـ Ename لان اعتمادها على EmpID .

وهذا مايسمى بـ Normalization وتقع في المرحله Second Normal Form - 2NF

لنناقش المشكله التي سوف تحصل الان :

لدينا الجدول التالي :

empid,age,city,exper ولدينا :

empid ويحدد الـ age,city,exper وايضا :

city وتحدد الـ Exper

فمعنى هذا انه لايمكنك حذف مدينة مكه مثلا لانه قد يحذف جميع مدن مكه بلا استثناء كذلك في التعديل وكذلك في الاضافه .

وهذا يسمى الاعتماد المتعدي وهي غير مقبوله في 3NF

اي انه لايمكن لحقل عادي ان يحدد حقل عادي اخر

الكلام يطول ولكن مع التجربه والقراءه يتبين لكم الامر باكمله

واتمنى لكم التوفيق

#14

حل المساله السابقه هي كالتالي :

(empid,age,city) ----- الحقل empid هو المفتاح الرئيسي و city مفتاح اجنبي

(city,exper) ----- الحقل city هو المفتاح الرئيسي

#15

سؤال :

هل تذكرون الجدول Emp والجدول Dept لماذا لم يوضعا في جدول واحد كان يصبح كالتالي :

Empno,Ename,Salary,Dno,Dname حيث انه Empno يحدد Ename,Salary,Dno والحقل Dno يحدد Dname

هل يستطيع احدكم ان يقول لي ماذا يحصل ولماذا وضعت في جداول منفصله .

والله يوفقكم.....نراكم في اقرب فرصه ان شاء الله

#16

أحسنت جميعا على هذا النقاش الممتاز

أخي الكريم : كما ذكر الإخوة سابقاً ... يمكنك عمل

جدول للدول يحوي (رقم الدولة ، اسم الدولة )مثلاً

حيث " رقم الدولة == > P.K " ،

وآخر للمدن (رقم الدولة ، رقم المدينة ، اسم المدينة )

بحيث يكون " رقم الدولة ==> F.K & رقم الدولة+رقم المدينة ==> P.K "

وأود من الأخ AraFox : أن يشرح لنا NF بمراحلها المختلفة (أعتقد أنها 3 مراحل) بالأمثلة لقاعدة بيانات عملية .... ! ولك أخي كل الشكر والتقدير.

--- المحمد

#17

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

شكراً أخواني:

شبيـــه الريح

AraFox

Al-Mohammad

جربتها نجحت في جدول::-

كود الدولة :PK

اسم الدولة :unique

كود المدينة :PK

اسم المدينة :unique

***

الحين في حقل الكود لا يتم تكرار الرقم: شيئ طبيعي، وفي حقل الاسم لايتم تكرار الاسم

وذلك بواسطة الخاصية::unique

يبدو أن المشاكل في الأول كانت من الفورمة

**

لكن كيف اجعل اختيار الدولة يظهر مدنها بالأسفل في الفورمة؟؟؟؟؟

#18

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

الاخ madatata

نلاحظ هنا ان العلاقة بين الدولة والمدن هي

ONE TO MANY

لذلك نعمل جدولين في الداتابيس الاول للدول والاخر للمدن كالتالي

الجدول الاول(MASTER)

CREATE TABLE COUNTRY(

COUNTRY_ID VARCHAR2(5)PRIMARY KEY,

COUNTRY_NAME VARCHAR2(30) NOT NULL);

الجدول الثاني(DETAILS)

CREATE TABLE CITY(

COUNTRY_ID VARCHAR2(5),

CITY_ID VARCHAR2(2),

CITY_NAME(40) NOT NULL,

CONSTRAINT CITY_PK PRIMARY KEY(COUNTRY_ID,CITY_ID),

CONSTRAINT CITY_FK FOREIGN KEY (COUNTRY_ID)

REFERENCES COUNTRY(COUNTRY_ID));

بعد ذلك اذهب ال FORMS BULDER

ابدأ بعمل فورم للجدول الاول ثم اعمل الجدول الاخر في نفس الفورم وعلى نفس الكانفا

ادخل كود واسم الدولة واكواد واسماء المدن التابعة لها

بعد ذلك بمجرد اختيار الدولة تظهر جميع اكواد واسماء المدن التابعة لها

بالتوفيق

#19

لحظة من فضلك

سكوت بليز

يرجى ممن ليس لديه خبرة في موضوع معين ألا يرسل مشاركته لأنه يخطئ بحق نفسه أولاً وبحق المنتدى ثانياً

بالنسبة للPK فإن كل جدول يخصص ب PK واحد فقط

ولكن كل PK قد يتألف من Column1 أو أكثر

PK مؤلف من عمود واحد يسمى Simple PK

PK مؤلف من أكثر من Column1 (أي عمودين وأكثر) يسمى Composed PK

#20

لحظة من فضلك

سكوت بليز

يرجى ممن ليس لديه خبرة في موضوع معين ألا يرسل مشاركته لأنه يخطئ بحق نفسه أولاً وبحق المنتدى ثانياً

بالنسبة للPK فإن كل جدول يخصص ب PK واحد فقط

ولكن كل PK قد يتألف من Column1 أو أكثر

PK مؤلف من عمود واحد يسمى Simple PK

PK مؤلف من أكثر من Column1 (أي عمودين وأكثر) يسمى Composed PK

سلام

#21

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

شكراً أخي: o7oc

الجداول اللي تقول عليها كنت بالفعل قد علمتها ما عدا ال Country_ID ما ضفته في جدول الCity

مشكور لك اخي وممنون لك، ويبدو ان هناك ثغرة في معلوماتي عن PK, relationship،وسوف نتداركها بإذن الله

لكن مشكلة هذين الجدولين كالآتي:

لاتسمح لك بأن تفعل Update في ال Country_ID

###

طبعاً الحل في أن إسقاط أو فصل (العلاقة) بين الجدولين، ثم نعمل التعديلات،

ثم نرجع العلاقة مرة أخرى بشرط:

وتكون تعديلات الكود في Country_IDــ> في جدول COUNTRY

هي نفسها في Country_IDــ> في جدول CitY

**

**لكن هل يعرف احد استخدام الحل سابقاً عن طريق SQL (كود)

#22

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

نعم انا مرة أخرى، لكن هذه المرة مشكلة غريبة افيدونا جزيتم خيراً.

عندى ثلاث جداول (علماً بأن عملي تحت برنامج SCHEMA BUILDER)

لكن تبدأ المشكلة عند عمل علاقة بين {MADA3_ID} الذي بجدول [MADA3]

وبين {MADA3_ID} الذي بجدول [MADA]

اجد البرنامج يعطي في جدول [MADA3] ل {MADA3_ID} خاصية (UNIQUE)

وتعطي رسالة الخطأالتالية:

OBE-15362: Error in creating FOREIGN constraints for MADA

----

ORA-02270: no matching unique or primary key for this column-list

----

OBE-15361: Error in creating PRIMARY/UNIQUE constraints for MADA3

----

ORA-02299: cannot validate (SCOTT.MADA3_BRW_U1) - duplicate keys found

#23

شكل الجداول بالصورة المرفقة

MADA_TABLS1.zip

#24

مرحباً ياشباب

هل السؤال غير واضح، أم............................

هذا الموضوع مغلق.

مواضيع مشابهة