В нашей компании много разных сущностей, но большая часть этих сущностей базы данных - люди.Таким образом, у нас есть клиенты, сотрудники, потенциальные клиенты, подрядчики и поставщики, и у всех них есть определенные общие атрибуты, а именно имена и контактные телефоны.
Возможно, я перешел за рамки объектно-ориентированного мышления.но теперь я смотрю на создание одной таблицы «Person», которая содержит всех людей, с флагами / подтаблицами, «расширяющими» эту модель, и добавляющими атрибуты на основе ролей в таблицы соединений по мере необходимости.Если мы скажем 250 000 человек (на MySQL и ISAM), это так сильно повлияет на производительность, что будущие администраторы баз данных будут проклинать меня вечно?Наш самый распространенный поиск - по комбинациям имя / фамилия.
Например, такие компании, как Salesforce, представляют собой клиентов / потенциальных клиентов / сотрудников в единой централизованной таблице с вложенными представлениями (если не хватает лучшего термина) илиони разделены на разные таблицы?
Предостережение: этот вопрос связан с "мы нашли, что лучше сделать это в реальном мире" , в отличие от теоретического дизайна.Мне нравится вышеупомянутое решение, и я уверен, что при наличии представлений, правильного размера и точной индексации эта производительность не пострадает.Я также чувствую, что вышесказанное не считается MUCK, просто довольно большой стол.