Как бы вы спроектировали отношения с базой данных на основе следующих данных? - PullRequest
0 голосов
/ 14 мая 2019

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

Первая таблица (которая может потребоваться разделить ????) - это результаты классификации после загрузки данных.

+--------------+-----------+--------+----------+---------+----------+
|              | precision | recall | f1-score | support | batch_id |
+--------------+-----------+--------+----------+---------+----------+
|              |           |        |          |         |          |
| positive     | 0.56      | 0.7    | 0.62     |    1034 |        1 |
| negative     | 0.96      | 0.94   | 0.95     |    8966 |        1 |
|              |           |        |          |         |          |
| micro avg    | 0.91      | 0.91   | 0.91     |   10000 |        1 |
| macro avg    | 0.76      | 0.82   | 0.79     |   10000 |        1 |
| weighted avg | 0.92      | 0.91   | 0.92     |   10000 |        1 |
|              |           |        |          |         |          |
| positive     | 0.56      | 0.7    | 0.62     |    1034 |        2 |
| negative     | 0.96      | 0.94   | 0.95     |    8966 |        2 |
|              |           |        |          |         |          |
| micro avg    | 0.91      | 0.91   | 0.91     |   10000 |        2 |
| macro avg    | 0.76      | 0.82   | 0.79     |   10000 |        2 |
| weighted avg | 0.92      | 0.91   | 0.92     |   10000 |        2 |
+--------------+-----------+--------+----------+---------+----------+

Вторая таблица - множество отзывов.

+----+------------+-----------+--------+----------+
| id | reviewtext | predicted | actual | batch_id |
+----+------------+-----------+--------+----------+
|  1 | blah blah  | pos       | neg    |        1 |
|  2 | blah blah  | pos       | pos    |        1 |
|  3 | blah blah  | neg       | neg    |        1 |
|  4 | blah blah  | pos       | neg    |        2 |
|  5 | blah blah  | pos       | pos    |        2 |
|  6 | blah blah  | neg       | neg    |        2 |
+----+------------+-----------+--------+----------+

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

1 Ответ

0 голосов
/ 14 мая 2019

Ваша таблица "классификации" должна иметь столбец "id" в качестве первичного ключа:

---+--------------+-----------+--------+----------+---------+
 id|              | precision | recall | f1-score | support | 
---+--------------+-----------+--------+----------+---------+
  1|              |           |        |          |         | 
  2| positive     | 0.56      | 0.7    | 0.62     |    1034 |
  3| negative     | 0.96      | 0.94   | 0.95     |    8966 |
  4|              |           |        |          |         |
  5| micro avg    | 0.91      | 0.91   | 0.91     |   10000 |
  6| macro avg    | 0.76      | 0.82   | 0.79     |   10000 |
  7| weighted avg | 0.92      | 0.91   | 0.92     |   10000 |
---+--------------+-----------+--------+----------+---------+

Затем в таблице "отзывов" создайте внешний ключ для таблицы "классификации":

---+------------+-----------+--------+------------------+
 id| reviewtext | predicted | actual | classification_id|
---+------------+-----------+--------+------------------+
  1| blah blah  | pos       | neg    |        1         |
  2| blah blah  | pos       | pos    |        2         |
  3| blah blah  | neg       | neg    |        3         |
---+------------+-----------+--------+------------------+

Теперь, если вы хотите получить доступ к данным из обеих таблиц в одном запросе, вы можете JOIN таблицы:

SELECT 
*.t1,
*.t2
FROM classification t1
LEFT JOIN reviews t2
ON (t1.id = t2.classification_id)

Если вам нужна помощь для выполнения этого с ORM Джанго,обновите ваш пост с вашими моделями и дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...