Одним из наиболее полезных и наименее подчеркнутых (в явном виде) преимуществ целостности данных (первичные ключи и ссылки на внешние ключи для начала) является то, что оно вынуждает «проектировать по контракту» между вашими данными и вашими приложениями;что останавливает довольно много типов ошибок от нанесения любого ущерба вашим данным.Это такой огромный выигрыш и вещь, которая неявно воспринимается как должное (ее защищает не «база данных», а заданные вами правила целостности; отказ от правил, которым вы подвергаете свои данные различным уровням деградации).
Это кажется вам неважным (из-за того, что вы даже не обсуждали, что было бы возможным первичным ключом), и ваши данные кажутся совершенно не связанными с другими частями системы (из-за того, что вы не будете выполнять присоединения клюбые другие таблицы);но все же - если бы все вещи были равны, я бы правильно смоделировал данные, а затем, если бы первичные ключи (или другие правила целостности данных) не использовались , а если гонялся за каждым последним битом производительности, я бы подумал об их сбросе в производство(и протестируйте на любой фактический выигрыш).
Что касается комментариев о том, что создание таблиц снижает производительность - это правда, но вы не сказали нам, насколько временными являются эти таблицы?Будут ли они использованы после создания?Или вы планируете создавать таблицы для всего десятка операций чтения.
В случае, если вы будете интенсивно использовать эти таблицы и , если вы предоставите чистый механизм для управления ими (удаление их, когда они не используются), выбирая их и т. д.) Я думаю, что динамическое создание таблиц было бы прекрасно (вы могли бы поделиться более подробной информацией о самих таблицах; было бы неплохо использовать вариант использования)
Примечания по другимрешения:
EAV модель
ужасна, если не соблюдаются очень специфические условия (например: гибкость имеет первостепенное значение, а автоматизация DDL - слишком сложная задача),Держитесь подальше от этого (или очень, очень хорошо предугадывайте, с какими типами запросов вам придется иметь дело с и при строгой проверке данных в интерфейсе).
Подход XML / BLOB
может быть правильным для вас, если вы будете использовать данные в виде XML / BLOB на уровне представления (всегда читайте все строки, всегда пишите весь «объект» и, наконец, если вашему уровню представления нравится XML/ BLOBS)
РЕДАКТИРОВАТЬ: Кроме того, в зависимости от моделей использования, первичный ключ может действительно увеличить скорость поиска, и если я могу прочитать тот факт, чтоданные не будут обновляться, поскольку «они будут записаны один раз и прочитаны много раз», тогда есть большая вероятность, что это действительно перевесит стоимость обновления индекса на вставках.