У меня есть требование разработать таблицу, которая выглядит почти как трехмерное требование.
Например,
- Есть «бесконечные» разновидности динозавров.
- Все Динозавры будут иметь некоторый общий набор признаков (имя, годы существования на Земле, вес, фамилия и т. д.).
- Будут некоторые специфические особенности, которые иногда не связаны с каждым сортом. Каждая такая функция идентифицируется парой «имя» = «значение». «Имя» — это что-то вроде названия функции (например, рога на голове, частота голоса и т. д.), а «значение» может быть значением функции (например, 3 рога на голове, частота голоса 10 Гц и т. д.). .,).
В соответствии с требованием мы можем создать таблицу X с общими функциями, такими как столбцы, относящиеся к cid, имени, годам существования, весу и т. д. И там может быть другая таблица Y только со столбцами (uid, имя, значение), где cid может быть привязан к uid.
Но тот факт, что количество строк в X будет огромным (триллион+, у нас может быть не так много семейств динозавров, но это просто пример). Точно так же name=value будет составлять несколько сотен на запись в таблице X. Это увеличит количество строк в таблице Y.
Поскольку функция «имя» также является «бесконечной», мы не можем создать таблицу с фиксированным количеством столбцов, например, столбец для каждой функции, к сожалению, потому что это было бы похоже на динамические столбцы.
Одна из идей состоит в том, чтобы иметь еще два столбца в таблице X, где один столбец может состоять из всех функций («имя»), разделенных запятыми, а другой столбец может состоять из всех «значений», разделенных запятыми. Но я знаю, что это очень плохой дизайн.
Могут ли быть какие-либо лучшие решения для этого требования?