اذا اردت صناعة تطبيق مثل مجتمع حسوب كيف سيكون مخطط قواعد البيانات .
مخطط قواعد بيانات مجتمع حسوب
الهيكلة الأساسية ستكون على نحو كهذا:
users table
=============
id
name
email
password
created_at
updated_at
...
posts table
=============
id
type // link or post
title
link // link if type equal link or null if type equal post
body
user_id // foreign key form users table
created_at
updated_at
...
comments table
=============
id
comment
user_id // foreign key form users table
post_id // foreign key form posts table
created_at
updated_at
...
messages table
==============
id
title
body
sender_id // foreign key form users table
reciver_id // foreign key form users table
created_at
updated_at
...
message_replies
===============
id
body
status
message_id // foreign key form messages table
sender_id // foreign key form users table
reciver_id // foreign key form users table
created_at
updated_at
...
post_votes table
===============
id
voit
user_id // foreign key form users table
post_id // foreign key form posts table
...
comment_votes table
===============
id
voit
user_id // foreign key form users table
post_id // foreign key form posts table
...
notifations table
================
id
title
link
status
user_id // foreign key form users table
created_at
updated_at
...
كتبت تخطيط سريع على عُجالة وأشرت أنه سيكون على شاكلة هذا التخطيط، وليس هو التخطيط الفعلي لكل محتوى الموقع :)
إضافة الجداول التي أشرت إليها سيكون على النحو
communities table
==================
id
name
image
user_id
created_at
updated_at
...
posts_edit table
===================
id
type
title
link
body
post_id // foreign key form posts table
created_at
updated_at
...
comments_edit table
===================
id
body
comment_id // foreign key form comments table
created_at
updated_at
...
وسنضيف مفتاح غريب لجدول الموضوعات posts لربطه بالمجتمعات
community_id // foreign key form communities table
التعليقات