У меня такая же проблема, чтобы решить, а также рассмотреть варианты. Поскольку у меня есть многолетний опыт создания многосайтовых приложений SaaS, я также собирался выбрать второй вариант, основанный на моем предыдущем опыте работы с реляционными базами данных.
Во время моего исследования я нашел эту статью на сайте поддержки mongodb : http://support.mongohq.com/use-cases/multi-tenant.html
Ребята заявили, что избегают 2-х опций любой ценой, которые, как я понимаю, не особенно специфичный для монгоба. У меня сложилось впечатление, что это применимо для большинства исследований NoSQL, которые я исследовал (CoachDB, Cassandra, CouchBase Server и т. Д.) Из-за специфики дизайна базы данных.
Коллекции (или ведра или, тем не менее, они называют это в разных БД) - это не то же самое, что и схемы безопасности в РСУБД, несмотря на то, что они ведут себя как контейнер для документов, которые они бесполезны для применения хорошего разделения арендаторов. Я не мог найти базу данных NoSQL, которая может применять ограничения безопасности на основе коллекций.
Конечно, вы можете использовать защиту на основе ролей mongodb для ограничения доступа на уровне базы данных / сервера. ( http://docs.mongodb.org/manual/core/authorization/ )
Я бы порекомендовал 1-й вариант, когда:
Я бы пошел на вариант 3, если:
Если вы разместите дополнительную информацию о своем приложении, возможно, я смогу дать вам более подробные советы.
В случае, если кому-то интересно, как это сделать, вот один способ: (Еще раз спасибо Марку!)
mBox = new TextView(context);
mBox.setText(Html.fromHtml("<b>" + title + "</b>" + "<br />" +
"<small>" + description + "</small>" + "<br />" +
"<small>" + DateAdded + "</small>"));
Неофициальный список тегов, поддерживаемых этим методом, см. эту ссылку или этот вопрос: Какие HTML-теги поддерживаются Android TextView?
Попробуйте Html.fromHtml ()
и выделите свой текст полужирным и курсивным шрифтом HTML-тегов, например:
Spanned text = Html.fromHtml("This mixes <b>bold</b> and <i>italic</i> stuff");
textView.setText(text);