jer
...
Трэбо совет насчет структуры базы для сети сайтов
Доброго вечера!
Пишу некую систему, в которой на одной базе данных (mysql) будут стоится несколько разных сайтов (расположенные на разных доменах), так называемая "сеть".
И каждая сущность в базе, будь то товар, новость, статья и т.д. может быть привязана (=> выводиться) к одному из указанных сайтов "сети", либо к нескольким, либо ко всем сразу. В общем, если сайтов в "сети" N, то привязок сущности может быть от 1...N.
Есть таблица с перечнем сайтов (site_id, site_domen, ...)
Есть таблица для каждой сущности (news_id, news_name, ...)
Возникает вопрос по структуре базы.
Пока есть 2 основные идеи:
1. Для каждой сущности заводить таблицу привязок к сайтам (site_id, news_id);
2. Завести в таблице каждой сущности дополнительное поле в котором с помощью бинарных операций объединять привязки к сайтам "сети" (за привязку к каждому сайту будет отвечать один бит).
Проблема выбора встала в связи выбором наиболее быстрого по скорости метода ну и наиболее грамотного, если можно так выразиться.
Вижу в первом методе недостатки по скорости (т.к. почти в каждом запросе нужно будет связывать с этой таблицей выбираемую сущность) и разрастании структуры базы, т.к. для каждой сущности появится еще одна таблица (хотя это уже мелочи).
Во втором методе вижу недостаток в том, что кол-во сайтов ограничивается разрядностью числа (что не самое страшное, сайтов в сети будет обычно порядка 3-5). и проблеме привязки сайта к разряду (биту) в числе. т.к. site_id может быть произвольным и по ходу работы системы меняться, добавляться новые.
ну и менее прозрачная работа с такой структурой.
Интересует Ваше мнение...
ps: надеюсь, понятно изложил.
Доброго вечера!
Пишу некую систему, в которой на одной базе данных (mysql) будут стоится несколько разных сайтов (расположенные на разных доменах), так называемая "сеть".
И каждая сущность в базе, будь то товар, новость, статья и т.д. может быть привязана (=> выводиться) к одному из указанных сайтов "сети", либо к нескольким, либо ко всем сразу. В общем, если сайтов в "сети" N, то привязок сущности может быть от 1...N.
Есть таблица с перечнем сайтов (site_id, site_domen, ...)
Есть таблица для каждой сущности (news_id, news_name, ...)
Возникает вопрос по структуре базы.
Пока есть 2 основные идеи:
1. Для каждой сущности заводить таблицу привязок к сайтам (site_id, news_id);
2. Завести в таблице каждой сущности дополнительное поле в котором с помощью бинарных операций объединять привязки к сайтам "сети" (за привязку к каждому сайту будет отвечать один бит).
Проблема выбора встала в связи выбором наиболее быстрого по скорости метода ну и наиболее грамотного, если можно так выразиться.
Вижу в первом методе недостатки по скорости (т.к. почти в каждом запросе нужно будет связывать с этой таблицей выбираемую сущность) и разрастании структуры базы, т.к. для каждой сущности появится еще одна таблица (хотя это уже мелочи).
Во втором методе вижу недостаток в том, что кол-во сайтов ограничивается разрядностью числа (что не самое страшное, сайтов в сети будет обычно порядка 3-5). и проблеме привязки сайта к разряду (биту) в числе. т.к. site_id может быть произвольным и по ходу работы системы меняться, добавляться новые.
ну и менее прозрачная работа с такой структурой.
Интересует Ваше мнение...
ps: надеюсь, понятно изложил.