Я администратор базы данных и разработчик в MySQL. Я пару лет работал с MySQL. Недавно я приобрел и изучаю O'Reilly High Performance MySQL 2nd Edition, чтобы улучшить свои навыки работы с расширенными функциями MySQL, высокой производительностью и масштабируемостью, потому что я часто разочаровывался в связи с отсутствием у меня предварительных знаний о MySQL (и в значительной степени, Я до сих пор).
В настоящее время я работаю над амбициозным веб-проектом. В этом проекте у нас будет достаточно контента и пользователей с самого начала. Я разработчик базы данных, и эта база данных должна быть очень быстрой (некоторые вставки, но в основном и более важные ЧИТАНИЯ).
Я хочу здесь обсудить эти требования :
- Будет несколько видов предметов
- Предметы имеют некоторые поля и отношения в common
- Предметы также имеют некоторые поля и отношения специальные , которые отличают их друг от друга
- Эти элементы должны быть перечислены все вместе, упорядочены или отфильтрованы по общим полям или отношениям
- Предметы также должны быть перечислены только по типу (для предмета item_specialA)
У меня есть некоторые базовые сомнения в дизайне, и я хотел бы, чтобы вы помогли мне решить и узнать, какой подход к проектированию будет лучше для высокопроизводительной базы данных MySQL.
Классический подход
На следующей диаграмме показан классический подход, о котором вы можете подумать в первую очередь, думая умом в базе данных: Диаграмма базы данных
Централизованный подход
Но, возможно, мы можем улучшить его с помощью некоторой или псевдообъектно-ориентированной парадигмы, объединяющей общие элементы и отношения в одной общей таблице элементов. Также было бы полезно перечислить все виды элементов: Диаграмма базы данных
- Преимущества и недостатки каждого из них?
- Какой подход вы бы выбрали или какие изменения вы бы применили, учитывая требования, замеченные ранее?
Спасибо всем заранее !!