#sql #database #database-schema
#sql #База данных #база данных-схема
Вопрос:
У меня есть идея создать приложение, в котором пользователи могут регистрироваться и сохранять некоторые виды оценок друг между другом.
Например, все пользователи A, B и C имеют свой особый балл:
A-B for example 11-9
B-C for example 22-80
A-C for example 15-15
У меня есть идея, но я не уверен, что это правильный способ, поэтому я хотел бы услышать некоторые из ваших мнений.
Спасибо
Комментарии:
1. Я думаю, мы хотели бы услышать некоторые из ваших мнений, прежде чем ответить…
2. @IWalkedAway, будут ли пользователи соревноваться только в матчах с участием двух игроков? Будут ли значимыми результаты за матч (а не только за общий результат)?
Ответ №1:
пользователь таблицы:
id name
1 A
2 B
3 C
таблица взаимной оценки
user_id_1 user_id_2 score_1 score_2
1 2 11 9
...
Установите индексы правильно, чтобы оба идентификатора user_id_1 и 2 были внешними ключами для пользователя таблицы и делали пару user_id_1 и 2 уникальными. Однако, насколько я знаю, убедившись, что нет обратной пары, нарушающей уникальность, вам нужно создать триггер вставки, и у вас будет четкая структура.
Ответ №2:
user Table
-----------
id | name
-----------
1 | a
2 | b
3 | c
score table
---------------
userId1|userId2|user1score|user2score
1|2|11|9
2|3|22|80
1|3|15|15
Ответ №3:
Для многопользовательских матчей:
Table User
----------
User_ID (Primary Key)
User_Name
Table Match
-----------
Match_ID (Primary Key)
Match_Date
Table User_Match
----------------
Match_ID (Primary Key)
User_ID (Primary Key)
Score