Я бы хотел создать базу данных. У меня есть вопросы, и я постараюсь объяснить их наилучшим образом.
1) кто-то сказал мне, что если вам не нужно много подробностей о проекте или если вы не хотите делать много вещей вручную, используйте динамическую идею, которая означает, что у вас нет таблицы с столбцы, но у вас есть таблица, в которой столбцы представлены в виде строк. это хороший подход? оно того стоит?
2) если у вас меньше таблиц, их легче масштабировать. почему это?
3) Допустим, я иду за динамичной идеей. так что я придумал, что я создал 3 таблицы. Эти 3 таблицы всегда будут одинаковыми и всегда будут полезны для других таблиц, которые используют динамическое представление. как? вот как.
таблица типов_форм
+----+------------+
| id | input_type |
+----+------------+
| 1 | select |
| 2 | input |
| 3 | bool |
+----+------------+
таблица динамических столбцов
+----+---------------+--------------+
| id | name | form_type_id |
+----+---------------+--------------+
| 1 | year_of_issue | 1 |
+----+---------------+--------------+
таблица типовых значений
+----+-------------------+-------+
| id | dynamic_column_id | value |
+----+-------------------+-------+
| 1 | 1 | 1996 |
| 2 | 1 | 2005 |
| 3 | 1 | 2008 |
+----+-------------------+-------+
теперь я могу использовать эти таблицы, чтобы динамически добавлять автомобили и извлекать автомобили из базы данных, но чтобы это работало для автомобилей, я буду использовать эти 3 таблицы, а также мне пришлось добавить еще 3 таблицы для автомобилей.
автомобили
+----+
| id |
+----+
| 1 |
+----+
column_transport_type
+---------------+-------------------+
| dynamic_column_id | transport_type_id |
+---------------+-------------------+
| 1 | 1 |
+---------------+-------------------+
car_columns_value
+----+--------+-------------------+-------+
| id | car_id | dynamic_column_id | value |
+----+--------+-------------------+-------+
| 1 | 1 | 1 | 1996 |
+----+--------+-------------------+-------+
Итак, давайте поговорим о 3 таблицах ниже.
От пользователя я получаю идентификатор transport_type_id, который записан в таблице column_tranport_type. Допустим, я получил transport_type_id как 1. с 1, я получаю, что dynamic_column_id равен 1. Я перехожу к таблице dynamic_columns и нахожу все, что имеет идентификатор, равный 1., так что это year_of_issue. Затем я проверяю, является ли year_of_issue выбором или вводом, и если он выбран, я также возвращаю значения выбора с именем столбца «year_of_issue» во внешний интерфейс, чтобы после возврата этой информации я для каждого цикла зацикливал эту информацию и динамически создавал форму. Когда он вводит информацию в те столбцы, которые я динамически выбираю, я использую таблицу car_columns_value, чтобы поместить туда значения. Ты понимаешь мой сценарий?
Это отличный способ, как я должен делать такие вещи динамически? Меня беспокоит то, что для каждого вида вещей (машина или корабль), которые я хочу, чтобы он работал динамически, мне нужно создать еще 3 таблицы. 3 таблицы по умолчанию, и для каждой динамической бизнес-логики (автомобиль, магазин, корабль) мне нужно еще 3 таблицы и еще 3 таблицы и так далее. Как вы знаете, количество таблиц будет расти, и, возможно, это пока не динамично. Мне сказали, что динамическое хорошо, когда вы сокращаете количество таблиц, чтобы вы могли лучше масштабироваться. Просто дай мне свои идеи. Должен ли я следовать своему подходу или что мне делать?