Filter
Exclude
Time range
-
Near
📊 Even Small Projects Should Have an 𝐄𝐑 𝐃𝐢𝐚𝐠𝐫𝐚𝐦! I recently designed the database for a Group Expense Sharing App. Even though it was a small project, I made sure to create a complete ER diagram. #DatabaseDesign #ERDiagram #SQL #PostgreSQL #SoftwareEngineering
5
What's your biggest weekend assignment? 📚 10-page essay? 📊 Group project? 💻 Programming assignment? 📝 Case study? I assist with: ⚙️ Software Engineering Projects 🐍 Java & Python Assignments 🌐 Web Programming 🗄️ Database Projects #ProgrammingHomework #SoftwareEngineering #ComputerScienceAssignment #DatabaseDesign #StudentLife #WeekendVibes
8
PaperTrail whodunnit empty? Solid Queue misses rake writes. Match same-timestamp batches → the service. Fix: whodunnit everywhere. #SolidQueue #RubyOnRails #DatabaseDesign
12
10 Architecture Decisions That Define Great Software Day 6 - Database selection The database you choose encodes assumptions about your data. Make them explicit. linkedin.com/posts/kartik-la… #DatabaseDesign #SoftwareArchitecture #SystemDesign #DataEngineering #BackendEngineering
32
Struggling to explain your database structure to your team? Our tutorial video shows you how to master the Diagram Tool to design, document, and communicate your data models with ease. Watch the full video here: youtube.com/watch?v=p7jap7De… #DatabaseDesign #DataModeling #SQLTips
64
Your database crashes mid-transaction. Which rows got saved? Which didn't? How does Postgres even know? The answer is WAL 🧵 #PostgreSQL #DataEngineering #DatabaseInternals #WAL #BackendDev #SQL #PostgresSQL #PythonDeveloper #DatabaseDesign #SystemDesign #100DaysOfCode
18
Computer Science students: Need assistance with: 🔹 Java projects 🔹 Python assignments 🔹 Database development 🔹 Software engineering reports Human-written support for complex technical coursework. #ComputerScienceAssignmentHelp #JavaProjectHelp #PythonHomework #DatabaseDesign #SoftwareEngineering
12
A well-structured Ruby application can be fast, scalable, secure, and easy to maintain. Which Ruby issue have you faced most often in production? #Ruby #RubyOnRails #WebDevelopment #SoftwareArchitecture #BackendDevelopment #Programming #DatabaseDesign #TechLeadership #Coding
23
These mistakes are easy to fix early. Proper database design is one of the biggest factors separating junior from solid backend engineers. What database design mistake have you made (or seen) before? Share your experience below 👇 #BackendDevelopment #DatabaseDesign #SystemDesign
19
Every database needs a way to uniquely identify records. But should you use a natural key or a surrogate key? Learn the differences, pros, cons, and real-world use cases. codewithfimi.com/surrogate-k… #SQL #DataWarehousing #DataEngineering #DatabaseDesign #Analytics

2
692
📚 Learning Notes: Why Email Uniqueness Matters in User Registration While learning authentication and Test-Driven Development (TDD), I explored an important validation that every registration system should have: 🚫 Preventing duplicate email registrations. At first, the registration endpoint allowed multiple users to sign up with the same email address. The next step was to write a test that verified duplicate registrations are rejected. 🔹 The Problem Imagine two accounts sharing the same email address. This can lead to: ❌ Authentication issues ❌ Password reset conflicts ❌ Data integrity problems ❌ Poor user experience Every user should have a unique identity, and email is often used as that identifier. 🔹 TDD Approach Following the Red → Green → Refactor cycle: 🔴 Red Write a failing test: • Create a user directly in the test database • Send another registration request using the same email Expected: → HTTP 400 Bad Request → No additional user record created The test failed because the application was still allowing duplicate registrations. 🟢 Green Add validation before creating a new user: • Search for an existing user with the same email • If found, throw a 400 error • Stop the registration process Run tests again → Pass ✅ The endpoint now correctly rejects duplicate emails. 🔹 Defense in Depth One lesson that stood out was: Application validation alone isn't enough. Even if the service checks for duplicates, bugs or race conditions can still occur. A stronger approach is: ✅ Application-level validation PLUS ✅ Database-level uniqueness constraints For example: @Column({ unique: true }) This ensures the database itself rejects duplicate email entries. 🔹 What I Learned Good validation happens at multiple layers: • API Layer → Validate requests • Service Layer → Enforce business rules • Database Layer → Protect data integrity Relying on only one layer can leave gaps. 💡 Biggest takeaway TDD helped uncover a business rule before it became a production issue. Writing the test first made the requirement explicit: "One email address should map to one user account." Simple rule. Big impact. #TDD #Authentication #NodeJS #ExpressJS #TypeScript #PostgreSQL #TypeORM #BackendDevelopment #SoftwareEngineering #DatabaseDesign #LearningInPublic #WebDevelopment
📚 Another small milestone in my microservice-based project development journey. Over the past few days, I've been working on the User Registration flow for the Authentication Service in the microservices-based project I'm building. This phase was much more than simply creating a registration endpoint. It gave me the opportunity to learn about validation, testing, database persistence, error handling, and security practices that go into building a reliable authentication system. Some of the things I explored: 🔹 Designing and persisting a User entity in PostgreSQL 🔹 Connecting the application to the database using TypeORM 🔹 Implementing request validation and sanitization with express-validator 🔹 Adding email uniqueness checks to prevent duplicate registrations 🔹 Assigning default user roles during registration 🔹 Improving error handling and application logging 🔹 Learning the basics of password hashing 🔹 Following a Test-Driven Development (TDD) approach to verify functionality before implementation 🔹 Writing tests for successful registrations, validation failures, duplicate emails, and other edge cases One thing that stood out to me during this process is how much effort goes into handling edge cases and ensuring data integrity. Building the happy path is often the easy part - making the system robust requires much more attention to detail. I'm still learning a lot about authentication systems, testing strategies, and microservice architecture, but every step of the process is helping me better understand how production-ready backend services are built. Next up: continuing to strengthen the authentication service and exploring more advanced microservice patterns. @codersGyan #Microservices #BackendDevelopment #NodeJS #TypeScript #PostgreSQL #TypeORM #TDD #SoftwareEngineering #LearningInPublic #WebDevelopment
6
74
Completed Day 16 of the GeeksforGeeks #summerskillup challenge by learning about Database Design and its importance in building scalable and efficient systems. #summerskillup #skillupwithgfg #SystemDesign #DatabaseDesign #HLD #LearningInPublic
3
38
تحليل قاعدة بيانات موجودة وتحسين العلاقات والجداول Existing Database Analysis and Table Relationship Optimization Prompt إعداد: كامل أبو سمرة – kamel3lom وظيفة البرومبت هذا البرومبت مخصص لتحليل أي قاعدة بيانات موجودة مسبقًا، سواء كانت Access / SQL Server / MySQL / PostgreSQL / SQLite / Oracle / Firebase / Supabase أو غيرها، بهدف فحص الجداول، العلاقات، المفاتيح الأساسية والخارجية، التكرار، أخطاء التصميم، جودة الحقول، التكامل المرجعي، الفهارس، الأداء، الأمان، ثم تقديم تصور احترافي لتحسين بنية قاعدة البيانات دون تخريب البيانات الحالية. المنصة الأنسب للاستخدام المنصة الأنسب هي ChatGPT أو Claude إذا كان المطلوب تحليلًا معماريًا ومنطقيًا للجداول والعلاقات، أما إذا كانت لديك ملفات SQL أو كود Backend مرتبط بقاعدة البيانات، فالأفضل استخدام ChatGPT Codex. وإذا كانت قاعدة البيانات موضحة في صور أو مخططات ERD، يمكن استخدام Gemini أو ChatGPT لقراءة المخططات وتحليلها بصريًا. طريقة الاستخدام انسخ البرومبت التالي وضعه في ChatGPT أو Claude، ثم أرفق معه ما يتوفر لديك من بيانات: ملف قاعدة البيانات، أو صورة العلاقات، أو مخطط ERD، أو أوامر إنشاء الجداول CREATE TABLE، أو أسماء الجداول والحقول، أو وصف مختصر لوظيفة النظام. كلما زادت دقة البيانات التي تقدمها، حصلت على تحليل أقوى وأقرب إلى الواقع، بدل تحليل نظري يصلح لكل شيء ولا يصلح لشيء؛ وهي مشكلة أغلب “خبراء قواعد البيانات” الذين يظنون أن المفتاح الخارجي نوع من أنواع المفكات. تنبيه مهم لضمان أعلى درجة ممكنة من الدقة وصحة الإخراج، يجب تزويد الذكاء الاصطناعي يدويًا بكل البيانات الموثقة المتاحة لديك قبل تنفيذ البرومبت أو ضمن نصه نفسه؛ لأن جودة المخرجات ترتبط مباشرة بجودة المدخلات، فالذكاء الاصطناعي — كأي نظام تحليلي أو برمجي — إذا بُنِي على بيانات صحيحة وموثقة ومنظمة، كانت نتائجه أقرب إلى الصحة والدقة والاعتمادية، أما إذا كانت البيانات ناقصة أو غير دقيقة أو غير موثقة، فإن المخرجات ستتأثر بذلك مهما كانت قوة النموذج. تحذير حقوقي هذا البرومبت من إعداد كامل أبو سمرة – kamel3lom، وهو متاح للاستخدام الشخصي، والتعليمي، والأكاديمي، والعلمي، والخيري، والشرح فقط، مع وجوب ذكر المصدر عند الاستخدام. ويُمنع استخدامه تجاريًا أو ربحيًا، أو إعادة نشره بصياغة جديدة، أو بيعه، أو استخدامه لكسب المتابعين، أو إنهاء أعمال مهنية للغير، إلا بعد شرائه، والشراء متوفر حاليًا في المملكة العربية السعودية فقط. ضع لايك / إعجاب وتعليق ومتابعة البرومبت الكامل الجاهز للنسخ واللصق أنت الآن خبير قواعد بيانات محترف، ومهندس نظم معلومات، ومحلل بنية بيانات، ومتخصص في تحسين العلاقات والجداول وفق أفضل ممارسات تصميم قواعد البيانات العلائقية وغير العلائقية. هذا البرومبت من إعداد كامل أبو سمرة – kamel3lom، ويجب أن يكون العمل الناتج دقيقًا، تحليليًا، عمليًا، ومنظمًا، مع الالتزام بمنهج: دقة قبل الجمال، تحقق قبل الاستنتاج، تفصيل قبل الاختصار، إخراج نهائي قبل الشرح. المطلوب منك تحليل قاعدة بيانات موجودة فعلًا، ثم تقديم تقرير شامل لتحسين الجداول والعلاقات والبنية العامة دون افتراضات عشوائية أو اختراع جداول غير مبررة. بيانات قاعدة البيانات التي سأزودك بها: [ضع هنا نوع قاعدة البيانات: Access / SQL Server / MySQL / PostgreSQL / SQLite / Oracle / Firebase / غير ذلك] [ضع هنا وصف النظام أو التطبيق المرتبط بقاعدة البيانات] [ضع هنا الجداول والحقول أو أوامر CREATE TABLE أو صورة العلاقات أو ملف قاعدة البيانات أو مخطط ERD] [ضع هنا المشكلات الحالية إن وجدت: بطء، تكرار بيانات، أخطاء علاقات، صعوبة في التقارير، تعارض في الإدخال، جداول غير مفهومة، علاقات مفقودة، إلخ] مهمتك الأساسية: أولًا: قراءة البنية الحالية لقاعدة البيانات قراءة تحليلية دقيقة، وتحديد الجداول الموجودة، وظيفة كل جدول، الحقول الأساسية، نوع كل حقل، المفاتيح الأساسية، المفاتيح الخارجية، العلاقات الحالية، والجداول التي تبدو ضعيفة أو مكررة أو غير مكتملة. ثانيًا: تحليل جودة التصميم الحالي من حيث: - وضوح أسماء الجداول والحقول. - سلامة المفاتيح الأساسية Primary Keys. - سلامة المفاتيح الخارجية Foreign Keys. - صحة العلاقات بين الجداول. - وجود علاقات واحد إلى واحد، واحد إلى متعدد، ومتعدد إلى متعدد. - الجداول الوسيطة Junction Tables عند الحاجة. - التكرار غير الضروري في البيانات. - مشكلات التطبيع Normalization. - الحاجة إلى تقسيم جداول ضخمة أو دمج جداول ضعيفة. - الحقول النصية أو الرقمية أو التاريخية غير المناسبة. - الحقول التي تحتاج إلى قيود Constraints. - الحقول التي تحتاج إلى قيم افتراضية Default Values. - الحقول التي تحتاج إلى فهارس Indexes. - احتمالات فقدان التكامل المرجعي Referential Integrity. - احتمالات حدوث بيانات يتيمة Orphan Records. - احتمالات التضارب بين الجداول. ثالثًا: قيّم قاعدة البيانات وفق مستويات التطبيع: - 1NF - 2NF - 3NF - BCNF عند الحاجة واشرح هل قاعدة البيانات ملتزمة بهذه المستويات أم لا، مع توضيح الخلل إن وجد، واقتراح طريقة إصلاحه. رابعًا: قدّم جدولًا تشخيصيًا للجداول الحالية وفق الصيغة التالية: اسم الجدول | وظيفته الحالية | المشكلة المكتشفة | درجة الخطورة | التعديل المقترح | السبب الفني للتعديل خامسًا: قدّم جدولًا تشخيصيًا للعلاقات وفق الصيغة التالية: الجدول الأول | الجدول الثاني | نوع العلاقة الحالية | المشكلة | العلاقة الصحيحة المقترحة | المفتاح الأساسي | المفتاح الخارجي | ملاحظات التنفيذ سادسًا: اقترح النسخة المحسّنة من قاعدة البيانات، وتشمل: - أسماء الجداول المقترحة. - أسماء الحقول المقترحة. - نوع كل حقل. - المفتاح الأساسي لكل جدول. - المفاتيح الخارجية. - العلاقات النهائية. - الجداول الوسيطة المطلوبة. - القيود المطلوبة. - الفهارس المطلوبة. - الجداول التي يجب حذفها أو دمجها أو إعادة تسميتها. - الجداول التي يجب إضافتها فقط إذا كانت ضرورية فعلًا. سابعًا: قدّم مخططًا نصيًا واضحًا للعلاقات النهائية بالشكل التالي: Table_A - PK: id - Fields: ... - Related To: - Table_B عبر field_id - Table_C عبر field_id ثامنًا: إذا كانت قاعدة البيانات SQL، فاكتب أوامر SQL مقترحة عند الإمكان، وتشمل: - CREATE TABLE للجداول المحسّنة. - ALTER TABLE لإضافة المفاتيح الخارجية. - CREATE INDEX للفهرسة. - قيود UNIQUE / NOT NULL / CHECK عند الحاجة. - أوامر Migration آمنة قدر الإمكان دون حذف البيانات مباشرة. - تنبيهات واضحة قبل أي أمر قد يؤدي إلى فقدان بيانات. تاسعًا: إذا كانت قاعدة البيانات Access، فقدم شرحًا عمليًا لكيفية تعديل العلاقات والجداول داخل Microsoft Access، مع توضيح: - الجداول التي يجب تعديلها. - الحقول التي يجب ربطها. - نوع العلاقة. - تفعيل التكامل المرجعي. - تفعيل Cascade Update عند الحاجة. - تجنب Cascade Delete إلا إذا كان ضروريًا ومبررًا. عاشرًا: حلل الأداء واقترح: - الحقول التي تحتاج إلى Index. - الاستعلامات التي قد تصبح بطيئة. - الجداول التي قد تحتاج إلى أرشفة. - الجداول التي قد تحتاج إلى تقسيم منطقي. - العلاقات التي قد تسبب بطئًا في التقارير. - طرق تحسين القراءة والكتابة. حادي عشر: حلل الأمان وسلامة البيانات، واقترح: - حقول تتبع مثل CreatedAt وUpdatedAt وCreatedBy عند الحاجة. - صلاحيات المستخدمين إن كانت القاعدة مرتبطة بتطبيق. - منع الحذف المباشر للبيانات المهمة. - استخدام Soft Delete عند الحاجة. - سجلات Audit Log إذا كان النظام حساسًا. - حماية البيانات الشخصية أو المالية أو الصحية إن وجدت. ثاني عشر: قدّم خطة تنفيذ عملية للتحسين دون تعطيل النظام، مرتبة على مراحل: المرحلة الأولى: الفحص والنسخ الاحتياطي. المرحلة الثانية: تنظيف البيانات. المرحلة الثالثة: تعديل الجداول. المرحلة الرابعة: إنشاء العلاقات. المرحلة الخامسة: اختبار التكامل. المرحلة السادسة: تحسين الأداء. المرحلة السابعة: التوثيق النهائي. ثالث عشر: قدّم قائمة أخطاء حرجة يجب تجنبها أثناء تعديل قاعدة البيانات، خاصة: - حذف جدول قبل التأكد من علاقاته. - تغيير نوع حقل يحتوي على بيانات مهمة دون نسخة احتياطية. - إنشاء علاقات خاطئة بين حقول غير متجانسة. - تكرار المفاتيح الأساسية. - استخدام نصوص بدل أرقام في الحقول المرجعية. - تجاهل التكامل المرجعي. - تجاهل النسخ الاحتياطي. رابع عشر: في نهاية التحليل، قدم ملخصًا تنفيذيًا موجزًا لصاحب المشروع يوضح: - مستوى جودة قاعدة البيانات الحالي. - أخطر 5 مشكلات. - أهم 5 تحسينات. - الأولوية التنفيذية. - هل القاعدة صالحة للتوسع أم تحتاج إلى إعادة بناء جزئي أو كامل. قواعد صارمة أثناء التحليل: - ميّز بوضوح بين المعلومة المؤكدة، والاستنتاج، والافتراض. - إذا كانت البيانات ناقصة، اذكر ما ينقصك، لكن قدّم أفضل تحليل ممكن بناءً على المتاح. - لا تخترع جداول جديدة دون سبب منطقي واضح. - لا تقترح حذف بيانات إلا مع وجود بديل آمن ونسخة احتياطية. - لا تكتفِ بالكلام العام؛ أعطني توصيات قابلة للتنفيذ. - اكتب بلغة عربية فنية واضحة ومنظمة. - استخدم الجداول عندما تكون مفيدة. - اجعل الإخراج النهائي مناسبًا لمطور أو محلل نظم أو صاحب مشروع يريد فهم قاعدة بياناته وتطويرها. صيغة الإخراج المطلوبة: 1. ملخص سريع عن قاعدة البيانات الحالية. 2. جدول الجداول الحالية ومشكلاتها. 3. جدول العلاقات الحالية ومشكلاتها. 4. تحليل التطبيع Normalization. 5. مشكلات التكامل المرجعي. 6. مشكلات التكرار والحقول الضعيفة. 7. النسخة المحسّنة المقترحة للجداول. 8. النسخة المحسّنة المقترحة للعلاقات. 9. الفهارس والقيود المقترحة. 10. أوامر SQL أو خطوات Access عند الحاجة. 11. خطة تنفيذ التحسين. 12. أخطاء يجب تجنبها. 13. ملخص تنفيذي نهائي. 14. توصية نهائية: تحسين جزئي، إعادة هيكلة، أم إعادة بناء كاملة. ابدأ التحليل الآن بناءً على البيانات التي سأقدمها لك. إعداد: كامل أبو سمرة – kamel3lom. #قواعد_البيانات #تحليل_البيانات #SQL #DatabaseDesign #kamel3lom
4
25
2,205
@rohit_negi9 @CoderArmy @adityatandon02 Day 3 of Thunder Batch Designed the database for a service marketplace where users can find mechanics and order device parts. Strong foundation first. #BuildInPublic #ThunderBatch #SystemDesign #DatabaseDesign #WebDevelopment
1
6
127
تصميم قاعدة SQL Server لنظام مبيعات متعدد الفروع SQL Server Multi-Branch Sales Database Design Prompt إعداد: كامل أبو سمرة – kamel3lom وظيفة البرومبت هذا البرومبت مخصص لتوليد تصميم احترافي كامل لقاعدة بيانات Microsoft SQL Server لنظام مبيعات متعدد الفروع، بحيث يشمل تصميم الجداول، العلاقات، المفاتيح الأساسية والخارجية، القيود، الفهارس، الصلاحيات، الحركات المالية، المخزون، الفواتير، المرتجعات، التحويلات بين الفروع، التقارير، وإجراءات الحماية والتدقيق، مع إخراج كود SQL جاهز للتنفيذ أو قابل للتطوير. المنصة الأنسب للاستخدام المنصة الأنسب هي ChatGPT Codex أو ChatGPT؛ لأن المطلوب ليس مجرد شرح نظري، بل إنتاج تصميم قاعدة بيانات منظم وكود SQL Server قابل للتنفيذ والمراجعة. ويمكن استخدام Claude للمراجعة المعمارية وتحسين منطق العلاقات، لكن التنفيذ الأفضل للكود يكون عبر ChatGPT Codex أو ChatGPT. طريقة الاستخدام افتح ChatGPT أو ChatGPT Codex، ثم انسخ البرومبت الكامل الموجود في الأسفل والصقه كما هو. بعد ذلك عدّل البيانات الموجودة بين الأقواس مثل عدد الفروع، نوع النشاط التجاري، طريقة البيع، نظام الضرائب، العملات، ومستوى التقارير المطلوب. بعد تشغيل البرومبت، اطلب من النموذج أولًا إخراج التصميم المنطقي، ثم كود إنشاء الجداول، ثم الفهارس والإجراءات المخزنة والتقارير. لا تبدأ التنفيذ في SQL Server قبل مراجعة أسماء الجداول والعلاقات والتأكد من أنها مناسبة لطبيعة مشروعك. تنبيه مهم لضمان أعلى درجة ممكنة من الدقة وصحة الإخراج، يجب تزويد الذكاء الاصطناعي يدويًا بكل البيانات الموثقة المتاحة لديك قبل تنفيذ البرومبت أو ضمن نصه نفسه؛ لأن جودة المخرجات ترتبط مباشرة بجودة المدخلات، فالذكاء الاصطناعي — كأي نظام تحليلي أو برمجي — إذا بُنِي على بيانات صحيحة وموثقة ومنظمة، كانت نتائجه أقرب إلى الصحة والدقة والاعتمادية، أما إذا كانت البيانات ناقصة أو غير دقيقة أو غير موثقة، فإن المخرجات ستتأثر بذلك مهما كانت قوة النموذج. تحذير حقوقي هذا البرومبت من إعداد كامل أبو سمرة – kamel3lom، وهو متاح للاستخدام الشخصي، والتعليمي، والأكاديمي، والعلمي، والخيري، والشرح فقط، مع وجوب ذكر المصدر عند الاستخدام. ويُمنع استخدامه تجاريًا أو ربحيًا، أو إعادة نشره بصياغة جديدة، أو بيعه، أو استخدامه لكسب المتابعين، أو إنهاء أعمال مهنية للغير، إلا بعد شرائه، والشراء متوفر حاليًا في المملكة العربية السعودية فقط. صيغة اللايك / الإعجاب والتعليق والمتابعة ضع لايك / إعجاب وتعليق ومتابعة. البرومبت الكامل الجاهز للنسخ واللصق أنت الآن خبير قواعد بيانات محترف ومتخصص في تصميم قواعد بيانات Microsoft SQL Server للأنظمة التجارية متعددة الفروع، وتعمل وفق منهج KAS-DPM — Kamel Abu Samra Deep Prompting Method. المطلوب منك تصميم قاعدة بيانات SQL Server متكاملة لنظام مبيعات متعدد الفروع، مع الالتزام بالدقة، منع الهلوسة، التحقق المنطقي من العلاقات، وإخراج تصميم عملي قابل للتنفيذ والتطوير. اسم صاحب البرومبت: كامل أبو سمرة – kamel3lom. القاعدة الأساسية: دقة قبل الجمال، تحقق قبل الاستنتاج، تفصيل قبل الاختصار، إخراج نهائي قبل الشرح. أولًا: وصف النظام المطلوب صمّم قاعدة بيانات SQL Server لنظام مبيعات متعدد الفروع، بحيث يخدم شركة أو مؤسسة لديها أكثر من فرع، وتحتاج إلى إدارة عمليات البيع، الشراء، المخزون، العملاء، الموردين، الموظفين، الصلاحيات، التقارير، والتحويلات بين الفروع. يجب أن يدعم النظام ما يلي: إدارة الفروع. إدارة المستخدمين والموظفين. إدارة الصلاحيات والأدوار. إدارة العملاء. إدارة الموردين. إدارة المنتجات. إدارة التصنيفات والوحدات. إدارة المخزون حسب كل فرع. إدارة فواتير البيع. إدارة تفاصيل فواتير البيع. إدارة المرتجعات. إدارة المدفوعات. إدارة طرق الدفع. إدارة الخصومات. إدارة الضرائب بطريقة مرنة وقابلة للتعديل. إدارة المشتريات. إدارة تفاصيل فواتير الشراء. إدارة التحويلات المخزنية بين الفروع. إدارة حركة المخزون. إدارة المصروفات. إدارة التقارير اليومية والشهرية. إدارة سجل التدقيق Audit Log. دعم الحذف المنطقي Soft Delete بدل الحذف النهائي. دعم تاريخ الإنشاء والتعديل لكل سجل. دعم المستخدم الذي أنشأ وعدّل كل سجل. دعم التوسع المستقبلي دون كسر بنية القاعدة. ثانيًا: افتراضات المشروع اعتمد الافتراضات التالية، مع توضيح أي افتراض تضيفه من عندك: نوع النظام: نظام مبيعات متعدد الفروع. قاعدة البيانات: Microsoft SQL Server. نمط التصميم: Relational Database Design. مستوى التطبيع المطلوب: حتى 3NF على الأقل. عدد الفروع الافتراضي: [اكتب عدد الفروع هنا]. نوع النشاط التجاري: [سوبرماركت / متجر ملابس / إلكترونيات / صيدلية / نشاط عام]. العملة: [اكتب العملة]. اللغة الأساسية للنظام: العربية، مع أسماء جداول وأعمدة إنجليزية واضحة. الضرائب: قابلة للتفعيل أو التعطيل حسب إعدادات النظام. كل فرع له مخزون مستقل. يمكن تحويل المنتجات بين الفروع. يمكن أن تتم عملية البيع من فرع محدد فقط. لا يجوز بيع كمية أكبر من الكمية المتوفرة في مخزون الفرع. يجب تسجيل كل حركة تؤثر على المخزون. يجب حفظ كل العمليات المالية المرتبطة بالفواتير. ثالثًا: المطلوب في الإخراج أخرج النتيجة على مراحل منظمة كما يلي: المرحلة الأولى: التحليل العام للنظام قدّم تحليلًا موجزًا يوضح الكيانات الأساسية في النظام، ووظيفة كل كيان، وطبيعة العلاقة بينه وبين الكيانات الأخرى. لا تستخدم كلامًا عامًا؛ اجعل التحليل مرتبطًا مباشرة بنظام المبيعات متعدد الفروع. المرحلة الثانية: تصميم الكيانات والجداول أنشئ قائمة كاملة بالجداول المطلوبة، مع توضيح وظيفة كل جدول، ويجب أن تشمل على الأقل الجداول التالية مع إمكانية إضافة جداول أخرى عند الحاجة: Branches Users Roles UserRoles Employees Customers Suppliers Categories Units Products ProductBarcodes BranchInventory InventoryTransactions SalesInvoices SalesInvoiceItems SalesReturns SalesReturnItems PurchaseInvoices PurchaseInvoiceItems Payments PaymentMethods Expenses StockTransfers StockTransferItems Taxes Discounts AuditLogs SystemSettings المرحلة الثالثة: العلاقات بين الجداول أنشئ وصفًا واضحًا للعلاقات بين الجداول، مع تحديد: علاقة واحد إلى متعدد. علاقة متعدد إلى متعدد إن وجدت. المفاتيح الأساسية Primary Keys. المفاتيح الخارجية Foreign Keys. القيود Constraints. قواعد الحذف والتحديث المناسبة. الحقول التي يجب أن تكون فريدة Unique. الحقول التي يجب أن تكون Not Null. المرحلة الرابعة: تصميم ERD نصي قدّم ERD نصيًا واضحًا يوضح العلاقات بين الجداول بهذا الأسلوب: Branches 1 ---- * SalesInvoices Branches 1 ---- * BranchInventory Products 1 ---- * BranchInventory SalesInvoices 1 ---- * SalesInvoiceItems Products 1 ---- * SalesInvoiceItems ثم أكمل باقي العلاقات بنفس الطريقة. المرحلة الخامسة: كود إنشاء قاعدة البيانات اكتب كود SQL Server كاملًا لإنشاء قاعدة البيانات، ويشمل: CREATE DATABASE. CREATE SCHEMA إذا كان مناسبًا. CREATE TABLE لكل الجداول. تحديد أنواع البيانات المناسبة. تحديد المفاتيح الأساسية. تحديد المفاتيح الخارجية. تحديد القيود. تحديد القيم الافتراضية DEFAULT. إضافة حقول CreatedAt وUpdatedAt وDeletedAt وIsDeleted. إضافة CreatedBy وUpdatedBy قدر الإمكان. استخدام DECIMAL للقيم المالية بدل FLOAT. استخدام DATETIME2 للتواريخ. استخدام NVARCHAR للنصوص العربية. استخدام BIT للحقول المنطقية. استخدام CHECK Constraints عند الحاجة. المرحلة السادسة: الفهارس Indexes اقترح وأنشئ فهارس مناسبة لتحسين الأداء، خصوصًا على الحقول التالية: BranchId ProductId CustomerId SupplierId InvoiceDate Barcode UserId CreatedAt IsDeleted مع توضيح سبب كل فهرس بشكل مختصر. المرحلة السابعة: الإجراءات المخزنة Stored Procedures اكتب إجراءات مخزنة أساسية للنظام، تشمل: إضافة فاتورة بيع كاملة مع تفاصيلها. تحديث مخزون الفرع بعد البيع. إنشاء مرتجع بيع. إرجاع الكمية للمخزون بعد المرتجع. تسجيل عملية شراء. تحديث المخزون بعد الشراء. تحويل مخزون من فرع إلى فرع آخر. تقرير مبيعات يومي حسب الفرع. تقرير مبيعات شهري حسب الفرع. تقرير المنتجات الأكثر مبيعًا. تقرير المخزون المنخفض. تقرير أرباح مبسط إذا كانت تكلفة المنتج متاحة. يجب أن تكون الإجراءات المخزنة مكتوبة بكود SQL Server واضح، مع استخدام Transaction عند العمليات التي تؤثر على أكثر من جدول. المرحلة الثامنة: Views للتقارير أنشئ Views مناسبة للتقارير، مثل: ViewDailySalesByBranch ViewMonthlySalesByBranch ViewCurrentInventoryByBranch ViewTopSellingProducts ViewCustomerSalesSummary ViewSupplierPurchasesSummary ViewLowStockProducts المرحلة التاسعة: التحقق من سلامة البيانات ضع قواعد تحقق تمنع الأخطاء التالية: بيع منتج غير موجود. بيع منتج غير متوفر في مخزون الفرع. إدخال كمية سالبة. إدخال سعر سلبي. حذف فرع لديه عمليات. تكرار باركود المنتج. تكرار رقم الفاتورة داخل الفرع. إدخال مرتجع أكبر من الكمية المباعة. تحويل كمية أكبر من المتاح في الفرع المصدر. المرحلة العاشرة: الأمان والصلاحيات صمّم نموذج صلاحيات مناسب، ويشمل: مدير النظام. مدير الفرع. كاشير. محاسب. مسؤول مخزون. مراقب تقارير. ثم وضّح صلاحيات كل دور، والجداول التي يمكنه التعامل معها، مع اقتراح طريقة ربط الصلاحيات بجدول Roles وUserRoles. المرحلة الحادية عشرة: Audit Log صمّم آلية سجل تدقيق Audit Log لتسجيل: اسم الجدول. نوع العملية Insert / Update / Delete. رقم السجل المتأثر. المستخدم المنفذ. تاريخ التنفيذ. القيم القديمة. القيم الجديدة. عنوان الجهاز أو الملاحظات إن أمكن. ثم اقترح Triggers أو طريقة تطبيق مناسبة. المرحلة الثانية عشرة: بيانات تجريبية Seed Data أنشئ بيانات تجريبية بسيطة تشمل: 3 فروع. 5 مستخدمين. 5 أدوار. 10 منتجات. 3 موردين. 5 عملاء. طرق دفع أساسية. إعدادات ضريبية افتراضية. مخزون أولي لكل فرع. المرحلة الثالثة عشرة: مراجعة التصميم بعد إخراج الكود، راجع التصميم مراجعة نقدية، واذكر: نقاط القوة. النقاط التي تحتاج تطويرًا عند تحويل النظام إلى مشروع حقيقي. الجداول التي يمكن فصلها لاحقًا. الجداول التي تحتاج أرشفة مستقبلية. أماكن الخطر في الأداء. أماكن الخطر في سلامة البيانات. اقتراحات تحسين قابلية التوسع. رابعًا: قواعد مهمة يجب الالتزام بها لا تستخدم تصميمًا مبسطًا يصلح لمحل صغير فقط؛ المطلوب نظام متعدد الفروع قابل للتوسع. لا تخلط مخزون الفروع في جدول واحد دون BranchId واضح. لا تجعل الفاتورة تؤثر على المخزون دون تسجيل حركة في InventoryTransactions. لا تستخدم FLOAT في الأسعار أو الإجماليات. لا تفترض نظامًا ضريبيًا لدولة معينة؛ اجعل الضريبة مرنة وقابلة للتعديل. لا تعتمد على الحذف النهائي إلا في الحالات التجريبية؛ استخدم Soft Delete. لا تكرر البيانات دون حاجة. لا تكتب كودًا ناقصًا ثم تقول إنه مثال فقط؛ أخرج تصميمًا قابلًا للبناء الفعلي. عند وجود افتراض غير مؤكد، اكتبه بوضوح تحت عنوان “افتراضات”. عند وجود أكثر من حل، اختر الحل الأنسب لنظام مبيعات متعدد الفروع واذكر السبب. حافظ على أسماء الجداول والأعمدة باللغة الإنجليزية الاحترافية، مع شرح عربي واضح. خامسًا: صيغة الإخراج النهائية أخرج الإجابة بهذا الترتيب: ملخص معماري للنظام. قائمة الجداول ووظيفة كل جدول. العلاقات بين الجداول. ERD نصي. كود SQL Server الكامل لإنشاء قاعدة البيانات والجداول. الفهارس. الإجراءات المخزنة. Views التقارير. قيود سلامة البيانات. نموذج الصلاحيات. Audit Log. بيانات تجريبية. مراجعة نقدية للتصميم. توصيات التطوير المستقبلي. في نهاية الإخراج اكتب العبارة التالية: تم إعداد هذا البرومبت وفق منهج KAS-DPM — Kamel Abu Samra Deep Prompting Method. إعداد: كامل أبو سمرة – kamel3lom. #SQLServer #قواعد_البيانات #نظام_مبيعات #DatabaseDesign #kamel3lom
3
15
1,153
May 15
Make your app smarter with SQLite! It is the industry standard for a reason—it is lightweight, powerful, and seamless to integrate. Unlock the full potential of your Xojo app’s data storage today with our in-depth SQLite guide! documentation.xojo.com/topic… #Xojo #DatabaseDesign #BuildWithXojo #SQLiteTips
1
2
85
Just kicked off my own social media app project today Of course I chose relational DB because... well, users, posts, likes, comments, and follows get messy FAST. Spent a most of my time staring at my schema wondering How do I cleanly link posts & comments back to users? What’s the smartest way to handle follower relationships (two user_ids dancing together)? Got properly introduced to Primary Keys and Foreign Keys the hard way Lowkey getting the hang of DB design #BuildInPublic #WebDev #DatabaseDesign
For my CodeAlpha internship I have to pick 2 out of 4 tasks to build I have little time and other things to prepare for So I'm gonna work on the E-commerce site and Social media platform. Really not ready for the stress that comes with websockets in task4 LFG🚀 #buildinpublic
2
6
75
7/ Want to master database design without the academic headache? Check out the full breakdown and Alexey's "Minimal Modeling" approach here: dataengineeringweekly.com/i/… #DataEngineering #SQL #DatabaseDesign #5NF
2
116