لقد حصلت على CRM صغير وأحاول معرفة أفضل طريقة لتصميم جداول DB.
لدي حاليًا جدول واحد للمستخدمين الذين لديهم حوالي 30 عمودًا أغيرها من وقت لآخر. نظرًا لأنني أقوم بتخزين معلومتين مختلفتين على هذا الجدول (معلومات المستخدم + الشركة) ، كنت أفكر في تقسيم هذا الجدول إلى 3 (مستخدم + شركة + اتصال بين هذين) ، ولكني مهتم أيضًا بالحفاظ على نسخة من أي تغييرات يتم صنعت في هذه الصفوف.
لذلك من:
user_id | firstname | last_name | company_name | company_city | company_subject | rank | status
1 | John | Borrows | Boink INC | NY | Web dev | 1 | 1
2 | Mike | Smith | Smithin INC | OC | Laywer | 1 | 2
3 | Mary | Anton | Caffin | SJ | Moving | 2 | 1
إلى شيء مثل هذا
user_id | firstname | last_name | rank | status
1 | John | Borrows | 1 | 1
2 | Mike | Smith | 1 | 2
3 | Mary | Anton | 2 | 1
comp_id | company_name | company_city | company_subject
1 | Boink INC | NY | Web dev
2 | Smithin INC | OC | Laywer
3 | Caffin | SJ | Moving
con_id | user_id | comp_id
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
لكنني لست متأكدًا من كيفية تتبع التغييرات عندما يقوم المستخدم على سبيل المثال بتغيير اسم الشركة أو بعض المعلومات الأخرى على جدول المستخدم وما إلى ذلك.