Я создаю агрегат (rss, twitter, другие службы и т. Д.) Агрегатор с LAMP. Он очень похож на Google Reader, поскольку люди могут добавлять столько каналов, сколько захотят, а затем смогут читать свои каналы, сортировать их, просматривать отдельные каналы или группы каналов одновременно.Логика базы данных накопителя для многопользовательского опыта
Я создал этот вид обслуживания раньше, но для небольшой группы людей, где группа ENTIRE имела доступ ко всем агрегированным фидам. Таким образом, это было довольно просто.
На этот раз, однако, я создаю услугу, на которую люди могут подписаться, поэтому у меня потенциально (в идеале) тысячи пользователей и 10 тысяч тысяч фидов и в свою очередь, миллионы фидов.
Мой подход к схеме базы данных (упрощенно) заключается в следующем:
users (id, name, ...)
feeds (id, name, url, ...)
feed_items (id, title, timestamp, feed_id, ...)
user_feeds (id, user_id, feed_id, ...)
Однако в том, что пользователь может подписаться на 100 фидов я пытаюсь распланировать самый лучший и самый оптимизированный способ для запроса базу данных для фидов_имя фидов, на которые они подписаны (или подмножества).
спасибо за отличный совет. вы правы в том, что лучше не иметь таблицу соединений. особенно потому, что я планирую разрешить пользователям переупорядочивать свои каналы и помещать их в папки и т. д. У меня нет проблем с нормализацией нормализации БД (и размером, я полагаю) для скорости запросов и простоты организации. с вашим подходом каждый пользователь имеет свой собственный частный набор данных, который хорош тем, что я могу легко позволить пользователям «делать больше» с их данными, не добавляя огромных слоев сложности. хотел бы услышать больше советов, поскольку вы, кажется, понимаете мою ситуацию. – phirschybar
Не стесняйтесь пишите мне. Мое имя пользователя - мой адрес электронной почты (gmail). – danmactough