CouchDB, моделирующий для многопользовательского

Вы можете использовать random.choices , что позволяет указать вес выборки. Затем я бы также сохранил словарь в виде списка, чтобы сохранить порядок относительно весов. Как обновлять весовые коэффициенты для правильных или неправильных ответов, зависит от вас, но вы можете использовать обратное масштабирование, например:

vocab = [
    ("Haus", "house"),
    ("Garten", "garden"),
    ("Freund", "friend"),
    ("Freundin", "friend")
]
weights = [1] * len(vocab)

while ...:
    index, (x, y) = random.choices(enumerate(vocab), weights)

    attempt = input("Translate " + x)

    if(attempt == y):
        weights[index] = 1 / (1/weights[index] + 1)
    else:
        weights[index] = 1 / max(1/weights[index] - 1, 1)

7
задан Bahadır Yağan 29 September 2008 в 09:06
поделиться

3 ответа

Было обсуждение списка рассылки некоторое время назад, который соответствует этому вопросу довольно хорошо. Эмпирическое правило состояло в том, чтобы только хранить данные в документе, который, вероятно, изменится по сравнению с, растут. Если данные, более вероятно, вырастут затем, Вы, скорее всего, хотите сохранить отдельные документы.

Таким образом в случае многопользовательской системы один способ реализовать основанные на ACL полномочия мог состоять в том, чтобы создать 'документы разрешения', которые будут отображением user_id к doc_id с соответствующим обозначенным разрешением.

{
    _id: "permission_doc_1",
    type: "acl",
    user: "John",
    docid: "John's Account Info",
    read: true,
    write: true
}

И Ваши представления были бы чем-то вроде

function(doc)
{
    emit([doc.user, doc.docid], {"read": doc.read, "write": doc.write});
}

И, учитывая docid и идентификатор пользователя, проверяющий на полномочия, был бы:

http://localhost:5984/db/_view/permissions/all?key=["John", "John's Account Info"]

Очевидно, это потребовало бы, чтобы наличие некоторого посредника между клиентом и диваном удостоверилось, что полномочия были осуществлены.

9
ответ дан 6 December 2019 в 15:40
поделиться

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

Если Вы хотите читать на документе/объекте - ориентированный, решения для распределенной базы данных былого, поиска на "Lotus Notes / Domino" (это - сформировавшаяся технология/продукт в этой области, это - хорошее фоновое знание в том, как приложения разработаны в основанной на документе парадигме. Классически, это действительно хорошо в приложениях типа рабочего процесса).

На CouchDB а именно, выезде:

http://wiki.apache.org/couchdb/ (это не должно быть удивлением),

http://seanoc.wordpress.com/2007/10/12/more-on-couchdb/ (обзор описания легкого чтения)

http://twit.tv/floss36 (Интервью подкаста все о CouchDB)

3
ответ дан 6 December 2019 в 15:40
поделиться

Что говорит @micahwittman. Просто быстрое дополнение: Временные представления никогда не должны использоваться в производственной системе, они для разработки только. Постоянные представления могут сделать все, что временные представления могут сделать и являются величинами быстрее.

2
ответ дан 6 December 2019 в 15:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: