Я постараюсь ответить в общих чертах, которые не привязаны к конкретной технологии базы данных (я работаю в MS SQL Server DWH).
Для решения ваших конкретных вопросов ...
"1.Мои данные могут измениться, так как встречу можно пометить как отмененную позже, я прочитал, что изменение данных в схеме« звезда »не очень хорошая идея. Если нет, то какой подход лучше.»
В таблицах фактов DWHes и таблицах измерений есть два основных типа таблиц.
Изменение фактических или размерных данных в схеме типа «звезда» является абсолютно допустимым. Не рекомендуется удалять записи измерений из DWH.
Вам необходимо выбрать тип 1 (перезаписать историю) или тип 2 (сохранить историю), чтобы изменить данные ( Медленно меняющееся измерение ).
Я не уверен, предлагаете ли вы удалять записи фактов здесь, но лучшим подходом было бы иметь флаг на каждой записи факта, чтобы указать статус встречи (забронировано / использовано / отменено / и т. Д.), И если пациент отменяет свое назначение, затем изменяет запись факта с статуса = зарегистрировано на статус = отменено фактически не удаляя запись факта. Таким образом, вы также можете отслеживать количество отмененных встреч.
Чтобы добавить усложнение, вы можете также иметь свою таблицу фактов, хранящую историю, чтобы вы могли показывать позицию «как в», то есть иметь возможность отображать состояние базы данных как в определенный момент времени. Это значительно увеличивает размер вашей базы данных, в зависимости от количества происходящих изменений.
"2. Данные в мои таблицы фактов будут вставлены фоновой задачей, когда данные будут добавлены в мою основную базу данных. Постоянная вставка данных в таблицу фактов - проблема, поскольку репосты почти всегда отображаются в приложении . "
Вам необходимо обсудить частоту обновлений / важность обновления данных. Как правило (как я уверен, что вы есть) DWH не являются системами OLTP и поэтому не предназначены для постоянного обновления новыми данными и возможности предоставления отчетов по самым актуальным данным. Если вы действительно этого хотите, вам нужна система OLTP.
При этом мы внедрили DWH, который обновлялся каждые 20 минут. У этого был SQL DWH с кубом OLAP, сидящим на вершине. Я не уверен, что у mysql есть технология OLAP, но я уверен, что есть какая-то версия с открытым исходным кодом. Существует несколько разновидностей OLAP (MOLAP / ROLAP / HOLAP), которые по-разному фокусируются на производительности / валюте данных.
Обычно вы хотите отделить сам DWH от уровня базы данных отчетов, особенно если пользователей много.
"3. Я планирую реализовать его в mysql, и если кто-то может указать мне на какой-то пост, посвященный производительности mysql с такой структурой, это было бы замечательно. Кроме того, это лучший механизм для реализации это схема Innodb или Myisam "
Я должен передать этот вопрос. Раньше я немного знал о innoDB и MyISAM, но прошло уже около 8 лет с тех пор, как я играл с этой технологией.
Очень хорошая книга по дизайну Star Schema DWH от Ральф Кимбалл по книге проектирования DWH