شرح صفوف ومحتوى الفقرة
يتطلب جدول المستخدمين users الآمن مفتاحاً أساسياً تلقائياً، وقيد تفرد UNIQUE على عمود البريد email، وعمود VARCHAR(255) لحفظ تجزئة كلمة المرور.
- اجعل طول عمود كلمة المرور دائماً
VARCHAR(255)حتى لا يتم اقتطاع أي تجزئة مستقبلية لـ Bcrypt أو Argon2id. - أضف قيد
UNIQUEعلى مستوى قاعدة البيانات لعمودemailلمنع تكرار الحسابات. - أضف عمود
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMPلتوثيق وقت التسجيل.
تفرض الهيكلة قيد NOT NULL على جميع الحقول الأساسية وقيد UNIQUE على البريد الإلكتروني بترميز utf8mb4.
PHP
<?php
$sql = "CREATE TABLE IF NOT EXISTS users (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(190) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
echo "Users DDL schema ready (" . strlen($sql) . " bytes)\n";