Дилемма организации базы данных (простое веб-приложение)

#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