Jump to content
  • 0

Что лучше несколько таблиц с несколькими колонками или одна таблица и много колонок


bgraf
 Share

Question

Здравствуйте!

Подскажите, решаю такую проблему.

Сайт на php база данных mysql.

Есть данные организаций, название, телефон и все в таком духе примерно 14 колонок, есть еще вид деятельности, но их, видов, может быть более 20-ти, а еще есть 10 картинок их работ но тут есть колонка маленькая картинка, большая картинка и еще описание.

В общей сложности получится +/- 60 колонок.

Скажите как вы думаете лучше сделать одну такую таблицу или разделить на три, 1-я это данные фирмы, 2-я вид деятельности, 3-я картинки и связать их?

Как вы думаете что быстрее делать выборку из одной таблицы или связав из трех?

Спасибо за помощь!

Edited by bgraf
Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Если кол-во видов деятельности фиксированное и каждая фирма может относиться к любому их числу (т.е. связь многие ко многим) — то конечно выносить их в отдельную таблицу и делать впридачу к ней таблицу связи вида "id фирмы — id вида деятельности". С правильными индексами будет не медленнее, чем одна монстроподобная таблица.

Если картинки уникальны для каждой фирмы, то логично оставить их полями в основной таблице фирм.

Link to comment
Share on other sites

  • 0

Все зависит от того, как именно будет использоваться данные. Если не будет поиска по видам деятельности, то можно их записать в виде строки вида id,id,id...

При построении структуры СУБД можно идти по следующему пути: сначала все приводим к третьей форме нормализации, а потом ее денормализуем в другие структуры, которые помогут максимально быстро выводить контент.

Стоит всегда помнить, что идеальных решений не существует, есть только наиболее выгодный компромис.

Link to comment
Share on other sites

  • 0

Есть мнение, что прибегать к денормализации следует в самом крайнем случае, потому что сделать что-то типа materialized view для ускорения выборки из нормализованной базы (или еще как-нибудь закешировать результаты этой выборки) зачастую проще, чем спешно приделывать костыли к разросшейся денормализованной, если этот поиск по видам деятельности ВНЕЗАПНО всё-таки понадобится...

Link to comment
Share on other sites

  • 0

Есть мнение, что прибегать к денормализации следует в самом крайнем случае, потому что сделать что-то типа materialized view для ускорения выборки из нормализованной базы (или еще как-нибудь закешировать результаты этой выборки) зачастую проще, чем спешно приделывать костыли к разросшейся денормализованной, если этот поиск по видам деятельности ВНЕЗАПНО всё-таки понадобится...

Materialized views является одним из способов денормализации. ;)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy