Здравствуйте!
Идея проста, есть таблица
user
+----+-----------+
| id | user_name |
+----+-----------+
| 1 | Dima |
| 2 | Sveta |
| 3 | Katya |
| 4 | Jenya |
+----+-----------+
Нужно сделать таблицу
достижений, которая будет связана с пользователями из таблицы
user
к примеру по
id
и которая будет хранить в себе достижения пользователей в программе обучения на сайте! первое что приходит в голову учитывая мой 3х недельный опыт изучения скл это ....
+-----------------+----------+----------------+-----------------+---------------+
| achievements_id | users_fk | pass_first_lvl | pass_second_lvl | invite_friend |
+-----------------+----------+----------------+-----------------+---------------+
| 1 | 1 | 1 | 0 | 1 |
| 2 | 2 | 0 | 0 | 1 |
| 3 | 3 | 1 | 0 | 0 |
| 4 | 4 | 0 | 0 | 1 |
+-----------------+----------+----------------+-----------------+---------------+
... где разумеется
achievements_id
это первичный ключ, а
users_fk
это внешний ключ связанный с таблицей
user
по полю
id
, там где в ячейке
1
разумеется достижение получено , ну а там где
0
что бы вы думали...? достижение ещё не выполнено ! Но сразу встаёт вопрос :
1. Как быть , если ачивок будет больше чем 4 ( а их 100% будет больше чем 4), например 100 достижений, это же получится таблица монстр?
Далее... Разумеется золотым стандартом ачивок является дата, когда они получены (ну допустим чтобы в дальнейшем использовать эту дату в каком-то общем рейтинге), есть идея....
+-----------------+----------------------+---------------------+----------------------+--------------------+
| achievements_id | achievements_date_fk | pass_first_lvl_date | pass_second_lvl_date | invite_friend_date |
+-----------------+----------------------+---------------------+----------------------+--------------------+
| 1 | 1 | 2021-12-05 | 0000-00-00 | 2020-04-01 |
| 2 | 2 | 0000-00-00 | 0000-00-00 | 1987-11-03 |
| 3 | 3 | 2011-05-05 | 0000-00-00 | 0000-00-00 |
| 4 | 4 | 0000-00-00 | 0000-00-00 | 2019-07-16 |
+-----------------+----------------------+---------------------+----------------------+--------------------+
.. ещё одна таблица - монстр с датами этих ачивок, которая соединена с таблицей
user
по
id
В общем главный вопрос тут думаю про реализацию структуры бд, и
на сколько это разумная идея организовывать таблицы достижений именно так, как Я с высоты своего опыта ( -_- ) ? Спасибо, за внимание, будьте корректны и не занудничайте через-чур !