2014-01-09 3 views
0

Используя MySQL, я реализую шаблон партии, где стороны могут быть людьми или организациями. Сторона также может быть клиентом, поставщиком и т. Д.Каков наилучший подход к связыванию таблиц с масштабируемостью

Каков наилучший способ связать это?

Заказчик, Поставщик и т. Д. Таблицы с 1: 1 на стол.

ИЛИ

PartyType Таблица с уникальными строк вкл клиента, поставщика и т.д., что имеет отношение 1: 1 в таблице партии.

Я пытаюсь разработать, что лучше для расширения до большого количества партийных записей.

например:

Select * From Поставщики Inner Join партии ...

ИЛИ

Select * From партии Где PartyType = "поставщик"

У меня есть первоначальные мысли, но не уверен, они действительны:

Поставщики будут хранить меньше записей для поиска, поэтому, возможно, это оптимально, Но тогда MySQL достаточно умен, чтобы HOP через большой партийный стол только собирал PartyType = 'Поставщики.

Это даже имеет значение?

ответ

0

Как всегда, если вас беспокоит производительность: протестируйте его! И если производительность хороша в любом случае, возьмите лучший дизайн в отношении нормализации и т. Д.

Но для того, чтобы задать вам вопрос, MySQL (как и любая другая соответствующая система БД) очень эффективен при запросе больших таблиц для информации. Я думаю, что вариант A работает лучше всего. Вам нужен индекс в ссылочном столбце участника, но, поскольку вполне вероятно, что это первичный ключ, у вас есть хорошие шансы, что этот дизайн отлично работает.

Смежные вопросы