PDA

View Full Version : الگوریتم یه سایت



Tarragon
پنج شنبه 03 بهمن 1392, 21:08 عصر
با سلام
من تازه دارم yii رو یاد می گیرم.
می خوام یه پروژه با yii انجام بدم تا خودم رو محک بزنم.
حالا می خوام یه سایت دانلود فیلم بشرط vip بودم بزنم.
خواستم بپرسم برای اینکار چه الگوریتمی باید پیش بگیرم.
مثلا چند تا کنترلر نیازه و دیتابیس باید چجوری باشه.
ممنون می شم توضیح بدید.
پیشاپیش از جوابهای مفیدتون ممنون.

Tarragon
جمعه 04 بهمن 1392, 12:20 عصر
با سلام
من فقط می خوام بدونم چند تا کنترلر باید بسازم؟
چند تا تیبل؟
و چند تا crud؟
با تشکر.

SlowCode
جمعه 04 بهمن 1392, 17:05 عصر
سلام
واسه جدول کاربران شما میتونی از دو روش استفاده کنی:
1- یه جدول tbl_user داشته باشی و مشخصات کاربران رو توش ذخیره کنی و یه فیلدی هم مثل vip داشته باشی از نوع boolean که مقدار default صفر داره و وقتی کاربری پول واریز کرد میشه 1.
2- همون ساختار بالایی با این تفاوت که دیگه فیلد vip نداریم. در عوض یه جدول دیگه داریم مثل tbl_vip که توش دوتا فیلد id,user_id داریم. به این صورت که هرکی vip باشه حتما توی این لیست هست.

فیلدهای مورد نیاز دیگه رو هم خودت میدونی دیگه.

حالا یه model براش درست میکنی، اگه از روش دوم استفاده کنی باید دوتا مدل درست کنی و ریلیشنشون رو درست کنی.
واسه CRUD هم بستگی داره به سلیقت. میتونی واسه هردوتاشون بسازی. یه روش دیگه هم اینه که یکی واسه USER بسازی و مشترکا برای مدیریت VIP هم ازش استفاده کنی.

Tarragon
جمعه 04 بهمن 1392, 18:13 عصر
سلام
کسی می دونه مشکل این کداز کجاست؟

<?php

class m140124_022639_tbl_user extends CDbMigration
{
public function safeUp()
{
$this->createTable(
'tbl_user',
array(
'id' => 'pk',
'username' => 'string NOT NULL',
'password' => 'string NOT NULL',
'email' => 'string NOT NULL',
'last_login_time' => 'datetime DEFAULT NULL',
'vip_time' => 'datetime DEFAULT NULL',
),'ENGINE=InnoDB'
);
$this->createTable(
'tbl_user_profile',
array(
'id' => 'int(11) NOT NULL',
'name' => 'string DEFAULT NULL',
'family' => 'string DEFAULT NULL',
'description' => 'text',
'gender' => 'int(1) DEFAULT 0',
'birth_city' => 'string NOT NULL',
'residence_city' => 'string NOT NULL',
'birth_year' => 'string NOT NULL',
'degree' => 'string NOT NULL',
),'ENGINE=InnoDB'
);
$this->addForeignKey('fk_profile_to_user','tbl_user_profi le','id','tbl_user','id','BELONGS_TO','RESTRICT');

}

public function safeDown()
{
$this->truncateTable('tbl_user_profile');
$this->dropTable('tbl_user_profile');
$this->dropTable('tbl_user');
}

}

MMSHFE
جمعه 04 بهمن 1392, 21:29 عصر
این کد رو ببینید:


<?php
class m140124_022639_tbl_user extends CDbMigration
{
public function safeUp()
{
$this->createTable('tbl_user',
array (
'id' => 'pk',
'username' => 'varchar(255) NOT NULL',
'password' => 'varchar(255) NOT NULL',
'email' => 'carvhar(255) NOT NULL',
'last_login_time' => 'datetime DEFAULT NULL',
'vip_time' => 'datetime DEFAULT NULL',
), 'ENGINE=InnoDB'
);
$this->createTable(
'tbl_user_profile',
array(
'id' => 'pk',
'user_id' => 'int(11) NOT NULL',
'name' => 'varchar(255) DEFAULT NULL',
'family' => 'varchar(255) DEFAULT NULL',
'description' => 'text DEFAULT NULL',
'gender' => 'tinyint(1) DEFAULT 0',
'birth_city' => 'varchar(255) NOT NULL',
'residence_city' => 'varchar(255) NOT NULL',
'birth_year' => 'int(11) NOT NULL',
'degree' => 'varchar(255) NOT NULL',
), 'ENGINE=InnoDB'
);
$this->addForeignKey('fk_profile_to_user', 'tbl_user_profile', 'user_id', 'tbl_user', 'id', 'CASCADE', 'CASCADE');

}

public function safeDown()
{
$this->dropForeignKey('fk_profile_to_user', 'tbl_user_profile');
$this->dropTable('tbl_user_profile');
$this->dropTable('tbl_user');
}
}