2013-02-12 2 views
-2

В настоящее время я разрабатываю сайт для размещения файлов так же, как filehippo.com. Я покончил с этим. Но мой клиент хочет систему премиум-членства, похожую на rapidshare pro. поэтому только участники премии получают доступ к скачиванию через определенный промежуток времени (например, месяц или около того).Система членства в системе Codeigniter

У меня есть две таблицы сейчас:

  • пользователя
  • файл

я должен создать новую таблицу для статуса членства? Какова наилучшая практика? логики и, возможно, структуры базы данных. Пожалуйста, дайте мне совет.

спасибо большое.

+0

вы могли бы сделать это столбцом пользователя, может быть целое число, чтобы представить уровень –

+0

доступа Да, это то, что я делаю сейчас. но как он может проверить срок годности? – rzkrzzz

+0

О, хорошая точка, да, возможно, нужен другой стол –

ответ

0

Если они платят за членство премиума, я хотел бы создать еще одну таблицу и связать его с идентификатором транзакции платежа. Это будет одна строка пользователя для многих строк premium_access. Таким образом, вы можете иметь исторический отчет о том, какая оплата была использована для того, сколько дней/месяцев обслуживания и разрешить взимать скидки в течение 6 месяцев или ежегодных членских взносов и по-прежнему иметь точное отслеживание, чтобы убедиться, что вы можете отслеживать любые лазейки или эксплойты.

Затем, когда вы хотите знать, когда они истекают было бы просто

выберите * из premium_access где user_id = '$ ID' предел 1 заказ по датой_окончания убыв

EDIT: Вот быстрый макет возможной структуры таблицы. Используйте свое собственное суждение по столбцам, вам нужны будет и правильное именование:

CREATE TABLE IF NOT EXISTS premium_access (
    id INT NOT NULL AUTO_INCREMENT , 
    user_id INT NOT NULL , --fk to USERS 
    payment_id VARCHAR(45) NULL , --fk to PAYMENTS/INVOICES 
    start_date TIMESTAMP NOT NULL , 
    end_date TIMESTAMP NOT NULL , 
    PRIMARY KEY (id)) 
+0

О, спасибо Desper! – rzkrzzz

0

Похоже, вы просто разработали или добавили некоторые столбцы в таблицу и файл пользователя.

В таблице пользователя, чтобы добавить столбец user_id, level_access, неактивный период. то в таблице файлов вы можете добавить столбцы id_user, которые служат для подключения таблицы пользователя.

можно установить интервал дат истечения вы делаете функцию, как это:

function expiration($date) { 
    /* $date = time is a register as user */ 
$sql=mysql_query("select ('$date' - INTERVAL 1 week) as expired"); 
$row = mysql_fetch_array($sql); 
$output=$row['expired']; 
return $output; 
}` 
Смежные вопросы