Мне нужно создать таблицу Key/value в моей базе данных, и я ищу руководство для наилучшего способа сделать это. В принципе, мне нужно уметь сопоставлять значения с динамическим набором именованных свойств и применять их к внешнему ключу.Пара ключей/значений в таблице базы данных
Операции, мне нужно, чтобы быть в состоянии поддерживать являются:
- Применить пару ключ/значение для группы элементов
- Перечислите все в настоящее время активных ключей
- определить все элементы, которые имеют значение для заданного ключа
- Определите все элементы, в которых значение, связанное с данным ключом, соответствует некоторым критериям.
Кажется, что самый простой способ сделать это, чтобы определить таблицу:
CREATE TABLE KeyValue (
id int,
Key varchar...,
Value varchar...
);
кажется, что я, вероятно, будет дублировать много данных в ключевом столбце, потому что любой данный ключ скорее всего, будет определено для большого количества документов. Замена ключа varchar на целочисленный поиск в другой таблице, по-видимому, облегчает эту проблему (и делает ее значительно более эффективной для перечисления всех активных ключей), но вызывает у меня проблему сохранения этой таблицы поиска (восходящей в нее всякий раз, когда я хочу определять свойство и, возможно, удалять запись в любое время, когда ключ/значение очищается).
Каков наилучший способ для этого?
Шансы столкновения SHA1 в значительной степени 0 в действительности, вам нужно быть супер злым, чтобы вызвать столкновения, если вы очень обеспокоены тем, что можете использовать SHA256 –
Я лично видел столкновение хэша (TTH) в DC++, так что это не возможно. – erikkallen