اين آموزش را بخاطر دوستان که پيام دادند و آموزشي در اين رابطه خواستند شروع کردم به نوشتن،
اين آموزش بصورت گام به گام است و گام به گام موارد پيچيده تر اضافه مي شود و حتي فيلدها و جداول مربوطه تغيير خواهد کرد بنابراين از دوستان خواهشمندم قبل از اينکه پست بدهند به من پيام بدهند تا تغييرات را با نام خودشان وارد نمايم.
گام اول:
براي شروع نيازهاي خودمان را مي نويسيم:
فيلدهايي که در ديتابيس نيازمنديم:
1- شناسه کاربر (عددي)
2- نام کاربري (کاراکتر و عدد)
3- ايميل
4- رمزعبور
5- زمان ساخت اکانت
6- وضعيت کاربر
خوب حالا کد SQL آن را مي نويسيم.
CREATE DATABASE dbname;
CREATE TABLE `users` (
user_id INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
username VARCHAR( 25 ) NOT NULL ,
password CHAR( 32 ) NOT NULL ,
email VARCHAR( 60 ) NOT NULL ,
creation_date INT( 11 ) UNSIGNED NOT NULL ,
status INT( 1 ) UNSIGNED NOT NULL ,
INDEX ( username , password) ,
UNIQUE (email)
);
فقط dbname را با نام دلخواه خود براي ديتبايس تغيير دهيد.
خوب الان ممکن است تک تک خط هاي بالا براي شما سوال شود، در آخر هر گام سوالات را جواب مي دهم.
حالا نوبت به وارد کردن record ها مي آيد فعلاً من به يک رکورد ساده بسنده مي کنم.
1
INSERT INTO users (user_id,username,password,email,cdate,status) VALUES ('test',md5('test'),'test@localhost','1323455986') ;
تا اينجا ما اولين گام را برداشتيم حالا مي رسيم به بخش سوالات متداول اين بخش را براي پاسخگويي به سوالات دوستان گذاشتم لطفاً بجاي پست کردن به من پيام دهيد من سوال شما را در پست ها جواب خواهم داد.
سوالات متداول:
1- چرا در رمز عبور از CHAR استفاده کرديد اما براي نام کاربري VARCHAR؟
در حقيقت CHAR و VARCHAR تفاوت ناچيزي دارند اما خيلي مهم است به زماني فکر کنيم که ديتابيس خيلي بزرگي داريم و مي خواهيم هر چه آن را بهينه تر کنيم.
تفاوت CHAR و VARCHAR:
در ارزش اشغال مموري:
Char = طول رشته
VARCHAR = طول رشته + 1 بايت
خوب طبق ضرب المثل معروف قطره قطره جمع گردد وانگهي دريا شود ما هم در آن يک بايت صرفه جويي کرديم که در پروژه بزرگ مقدارش زياد نشود.
2- چرا طول password را 32 انتخاب کرديد؟
چون من مي خواهم در آينده از روش کدگذاري md5 استفاده کنم که هر رشته متني را به يک رشته 32 کاراکتري تبديل مي کند.
3- وظيفه INDEX چيست؟
اين تابع به MYSQL مي فهماند که بعداً ما مي خواهيم بيشترين جستجو و انتخاب رکوردها را بر اساس اين فيلدها انجام دهيد در نتيجه جستجويي سريعتر خواهيم داشت.
4- وظيفه UNIQUE چيست؟
اين تابع به MYSQL مي فهماند که ما فقط يک ايميل يکتا خواهيم داشت و اجازه ثبت يک ايميل مشابه در در چند رکورد مختلف را ندهد. و اين کاملاً سليقه ايي است.
با آرزوي موفقيت.