DataBase قواعد بيانات – Telegram
DataBase قواعد بيانات
2.42K subscribers
201 photos
9 videos
42 files
82 links
قواعد بيانات تمارين و امثله ..
Download Telegram
انواع المفاتيح في قواعد البيانات


مهم جدا
Media is too big
VIEW IN TELEGRAM
ابداع احد طلابنا من جامعة الحكمة - اليمن
مشروع مقرر مستوى ثالث قسم تقنية المعلومات لثلاث مواد

- تجارة إلكترونية.
- برمجة تكاملية " بناء API "
- تطوير تطبيقات الاندرويد


حصل الطالب على الدرجة الكاملة في الثلاث المواد.
👍7
فصل التصميم.pdf
11.1 MB
لمشاريع التخرج

فصل التصميم لاحد مشاريع طلاب السعيدة للعام الماضي

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


بحث مسار الطالب الجامعي - جامعة السعيدة - فرع ذمار - اليمن

مشرف المشروع
أ.م.د / بشير المقالح ( عميد كلية الحاسبات ونظم المعلوماتية بجامعة ذمار )

تم مراجعته من قبل عميد كلية الهندسة وتقنية المعلومات بجامعة السعيدة
👍2
نص طلب مساعدة من الذكاء الاصطناعي في بناء دالة تقوم بالتحقق من تعقيد كلمة المرور :

التحقق من ان النص يحتوي على احرف ورموز وارقام ولا يقل عن 6 خانات , sql server , Create function in sql server
1
عند وجود اي مشكلة لديك قم بنسخ نص رسالة الخطأ

ثم اوصف للذكاء الاصطناعي ما تريده منه بأي لغة تريد
2
يخبرك المدير التنفيذي في StabilityAI أن نهاية المبرمجين ستكون في غضون 5 سنوات. ويخبرك المدير التنفيذي لـ Nvidia أن المبرمجين أيامهم معدودة ...

نحن نريد أن نوضح شيء ضروري بخصوص هذه التصريحات الماضية، الحالية وحتى المستقبلية ...

ضع في حسبانك أن تصريحات هؤلاء الأشخاص تخدم مصالحهم أكثر من أي شيء آخر. فتصريح Nvidia جاء تمهيدًا لإطلاق برمجيتها الذكية Chat With RTX.

( هناك مثال يقول، لو شعرت بالألم في قدمك وذهبت لطبيب أسنان، سخبرك أن ضرسك هو سبب الألم ) .

الأمر سيان في أوساط شركات السيليكون فالي، ستخبرك Binance أن البيتكوين هو المستقبل، وسيخبرك JPMorgan أنه مجرد فقاعة. كل شخص يبحث عن مصالحه.

ولا ننسى الخدمات التي بدأت تلقب نفسها بخدمات AI. فخدمات أتمتة أصبحت AI، ومنصات بحث أصبحت منصات بحث بالـ AI. الـ AI عبارة رنانة الكل يستخدمها حتى إن كانت المنصة مجرد منصة عادية.

لا أحد يعرف ما الذي يخبئه المستقبل بالفعل، قد تكون بالفعل نهاية المبرمجين أو قد تكون نهاية الـ AI.

خدمات الـ AI بالفعل جلبت شيء جديد لحياتنا وسهلت الكثير. لكن في أوساط المحترفين هي تبقى مجرد أدوات. لا داعي للـ Hype ! إ
👍53
CREATE PROCEDURE UpdateUserStatusAndCreateAccountAndBalanceWithStatusCheck
@userId INT,
@userPerformingUpdate INT,
@groupId SMALLINT,
@accountNo NVARCHAR(12),
@yemeniCurrencyId NCHAR(3),
@saudiCurrencyId NCHAR(3)
AS
BEGIN
-- التحقق من حالة المستخدم الذي يقوم بالتحديث
DECLARE @statusPerformer TINYINT;
SELECT @statusPerformer = [status] FROM PMUser WHERE id = @userPerformingUpdate;

IF @statusPerformer != 1
BEGIN
RAISERROR ('المستخدم موقوف ولا يمتلك صلاحية للتحديث', 16, 1);
RETURN;
END

-- التحقق من حالة المستخدم المستهدف
DECLARE @statusTarget TINYINT;
SELECT @statusTarget = [status] FROM PMUser WHERE id = @userId;

IF @statusTarget = 3
BEGIN
RAISERROR ('المستخدم المراد تحديثه محظور من قبل الادارة', 16, 1);
RETURN;
END

-- تحديث حالة المستخدم المستهدف
UPDATE PMUser
SET [status] = 1
WHERE id = @userId;

-- إنشاء حساب جديد
INSERT INTO AMAccount (id, groupId, accountNo, [status], createAt, [denoscription])
VALUES (@userId, @groupId, @accountNo, 1, GETDATE(), '{}');

-- إنشاء رصيد بالعملة اليمنية
INSERT INTO AMBalance (accountId, groupId, currencyId, [status], amount, [denoscription])
VALUES (@userId, @groupId, @yemeniCurrencyId, 1, 0, '{}');

-- إنشاء رصيد بالعملة السعودية
INSERT INTO AMBalance (accountId, groupId, currencyId, [status], amount, [denoscription])
VALUES (@userId, @groupId, @saudiCurrencyId, 1, 0, '{}');
END;
5
DataBase قواعد بيانات
CREATE PROCEDURE UpdateUserStatusAndCreateAccountAndBalanceWithStatusCheck @userId INT, @userPerformingUpdate INT, @groupId SMALLINT, @accountNo NVARCHAR(12), @yemeniCurrencyId NCHAR(3), @saudiCurrencyId NCHAR(3) AS BEGIN -- التحقق…
جربت تحدي الذكاء الاصطناعي من اجل كتابة كود يناسب قاعدة بياناتي لأجراء مخزن يحتوي على الكثير من التفاصيل ويتعامل مع عده جداول وكانت النتيجة 100% كما اريد
👍1
اجراء مخزن.rar
3 MB
حفظت صفحة المحادثة بالكامل وهذه هي
create table AMService (
id int primary key identity(1, 1),
categoryId smallint not null constraint FK_AMService_AMCategory foreign key references AMCategory(id),
currencyId nchar(3) not null constraint FK_AMService_AMCurrency foreign key references AMCurrency(id),
fatherId int constraint FK_AMService_AMServiceFather foreign key references AMService(id),
serviceCode nvarchar(20) not null,
amount money not null,
);

create table AMPayment (
id int primary key identity(1, 1),
currencyId nchar(3) not null constraint FK_AMPayment_AMCurrency foreign key references AMCurrency(id),
serviceId int not null constraint FK_AMPayment_AMService foreign key references AMService(id),
userId int not null constraint FK_AMPayment_PMUser foreign key references PMUser(id),
amount money not null,

);

create table AMTransfer (
id int primary key identity(1, 1),
accountId int not null,
groupId smallint not null,
currencyId nchar(3) not null,
constraint FK_AMTransfer_AMBalance foreign key(groupId, accountId,currencyId) references AMBalance(groupId, accountId,currencyId),
paymentId int not null constraint FK_AMTransfer_AMPayment foreign key references AMPayment(id),
amount money not null,
);

create table PMUser (
id int primary key constraint FK_PMUser_PMAuth foreign key references PMAuth(id),
[status] tinyint not null default(0),

);

هل يمكنك كتابة كود اجراء مخزن يقوم بفحص اذا كان حالة المستخدم لا تساوي 1 يظهر رسالة خطأ بأن المستخدم غير شغال او محظور
مالم يقوم بالتحقق بأن حالة الخدمة لا تساوي 1 يظهر رسالة خطأ بأن الخدمة غير متاحة
مالم يقوم بأنشاء عملية دفع اذا كان مبلغ الدفع ليس اقل من تكلفة الخدمة ثم يقوم بالتاثير على الحسابات من خلال اضافة صفوف الى جدول التحويلات للتأثير على الحسابات المرتبطة بعملية الدفع؟
CREATE PROCEDURE ProcessPayment
@userId INT,
@serviceId INT,
@paymentAmount MONEY
AS
BEGIN
-- Check if the user status is not equal to 1 (active)
IF (SELECT [status] FROM PMUser WHERE id = @userId) <> 1
BEGIN
RAISERROR('المستخدم غير شغال أو محظور', 16, 1);
RETURN;
END

-- Check if the service status is not equal to 1 (available)
IF (SELECT [status] FROM AMService WHERE id = @serviceId) <> 1
BEGIN
RAISERROR('الخدمة غير متاحة', 16, 1);
RETURN;
END

-- Check if the payment amount is not less than the service cost
DECLARE @serviceCost MONEY;
SELECT @serviceCost = amount FROM AMService WHERE id = @serviceId;
IF @paymentAmount < @serviceCost
BEGIN
RAISERROR('مبلغ الدفع أقل من تكلفة الخدمة', 16, 1);
RETURN;
END

-- Proceed with creating a payment record
INSERT INTO AMPayment (currencyId, serviceId, userId, amount, [status], [denoscription])
VALUES ((SELECT currencyId FROM AMService WHERE id = @serviceId), @serviceId, @userId, @paymentAmount, 1, '{}');

DECLARE @paymentId INT;
SET @paymentId = SCOPE_IDENTITY();

-- Affect the accounts by adding rows to the AMTransfer table
-- This is a placeholder for the logic to affect the accounts
-- You will need to replace it with the actual logic based on your application's requirements
INSERT INTO AMTransfer (accountId, groupId, currencyId, paymentId, amount, [denoscription])
VALUES (/* accountId */, /* groupId */, (SELECT currencyId FROM AMService WHERE id = @serviceId), @paymentId, @paymentAmount, '{}');
END
هذه تجربة اخرى اعطيت الذكاء الاصطناعي كود انشاء جداولي ثم طلبت منه انشاء اجراء مفصل وكانت النتيجة كما طلبت تماما

تم قص جزء من اكواد الجداول
https://www.instagram.com/anwaralsaiary?igsh=ZGUzMzM3NWJiOQ==


اتمنى متابعة حسابي على الانستقرام
نبدء اختبار جديد مع الذكاء الاصطناعي
لقد قمت بمراجعة الجداول التي أرسلتها، وهنا بعض الملاحظات:

1. الأمان: استخدام نوع البيانات image لـ passwordHash و passwordSalt ليس مثاليًا. يُفضل استخدام نوع بيانات varbinary لتخزين الهاش والملح لأنه أكثر ملاءمة للبيانات الثنائية.

2. التحقق من الصحة: حقل email في جدول PMAuth محدود بـ 20 حرفًا فقط، وهذا قد لا يكون كافيًا لعناوين البريد الإلكتروني الطويلة. قد تحتاج إلى زيادة هذا الحد.

3. التنظيم: استخدام نوع البيانات text للوصف قد يكون مفرطًا وغير مُحسّن. يُفضل استخدام nvarchar(MAX) أو varchar(MAX) إذا كنت تحتاج إلى تخزين نصوص طويلة.

4. التعريفات: يُفضل تحديد العلاقات بين الجداول بشكل واضح، مثل العلاقة بين AMAccount و AMAccountGroup. تأكد من أن العلاقات تعكس الهيكل التنظيمي للبيانات بشكل صحيح.

5. الأداء: لجداول مثل `AMBalance`، قد تحتاج إلى فهرسة على الحقول التي ستستخدم بشكل متكرر في الاستعلامات لتحسين الأداء.

6. التدقيق: قد ترغب في إضافة حقول لتسجيل الأحداث مثل lastUpdatedAt لتتبع التغييرات في السجلات.

يمكنك إضافة المزيد من الكود، وسأقوم بمراجعته أيضًا.
شكرًا لمشاركة بقية الكود. إليك بعض الملاحظات الإضافية:

1. التناسق: تأكد من أن جميع الجداول تستخدم نفس نوع البيانات للحقول المتشابهة، مثل denoscription. إذا قررت استخدام nvarchar(MAX) بدلاً من `text`، فعليك تحديث جميع الجداول لتعكس هذا التغيير.

2. الفهرسة: لجدول AMTransfer`، قد تحتاج إلى فهرسة حقل `createAt إذا كنت تخطط لإجراء استعلامات تاريخية أو ترتيب السجلات بناءً على تاريخ الإنشاء.

3. العلاقات: تأكد من أن العلاقات بين الجداول تعكس بدقة العمليات التجارية والمنطقية لنظامك. على سبيل المثال، العلاقة بين AMTransfer و AMPayment يجب أن تعكس العملية التجارية للتحويلات المالية.

4. التحقق من الصحة: قد ترغب في إضافة قيود على الحقول مثل amount لضمان أن القيم المدخلة تتوافق مع القواعد المالية لتطبيقك.

5. التوثيق: من المهم توثيق الجداول والعلاقات بينها بشكل جيد، بما في ذلك القيود والقواعد المستخدمة. هذا سيساعد في الحفاظ على قابلية الصيانة والتوسع في المستقبل.

إذا كان لديك أي استفسارات أخرى أو تحتاج إلى مزيد من المساعدة، فلا تتردد في طرحها.
هذه كانت اجابته بعد ارسال كود قاعدة البيانات