У меня есть 10 таблиц базы данных, 6 из которых являются таблицами ссылок. Должен ли я создать общий LinkTable? - PullRequest
2 голосов
/ 11 декабря 2010

У меня есть 10 таблиц базы данных A, B, C, D, E, F, G, H, I и J.Четыре из них необходимы, но шесть из них являются просто таблицами ссылок, которые связывают эти четыре таблицы.Я рассматриваю возможность создания общей таблицы ссылок для этого, так что

A, B, C, D, Link

Выполняется так же, как и раньше, за исключением того, что таблица ссылок предоставляет все ссылки, которые делали старые шесть таблиц.Мне нужны три столбца для таблицы ссылок (тема, цель, тип).

Как вы думаете, это имеет смысл или разумный подход?

Если это имеет какое-то значение, размерТаблица ссылок не должна становиться большой.Столбец type равен TINYINT.Одна из тем ссылки - User, и это в значительной степени определяет, насколько большой может стать вся таблица ссылок.В таблице будет примерно на 5% больше строк, чем в таблице User.

1 Ответ

4 голосов
/ 11 декабря 2010

Лично нет, я бы так не поступил.

Да, может показаться «чрезмерным» иметь шесть таблиц ссылок для четырех таблиц базовых данных.Но на самом деле: вы выигрываете от наличия только одной таблицы ссылок, но затем вы должны начать добавлять тип к ссылке (это ссылка из таблицы A в таблицу D или что-то еще), и все это становится довольно грязным.

Для меня ясность возможности увидеть , что две таблицы связаны, поскольку между ними есть таблица ссылок, гораздо важнее, чем иметь одну или две таблицы меньше.Это действительно не оказывает большого влияния ни на что - ни с точки зрения дискового пространства, ни с точки зрения производительности это не будет полезным .....

Итак, еще раз: зачем беспокоиться?Иметь четкую и правильную структуру и просто принять тот факт, что реляционным базам данных требуется несколько вспомогательных таблиц между их основными таблицами, чтобы заставить работать «магию» - и не слишком беспокоиться об этом факте .....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...