MySQL позволяет комментарии к таблицам и строкам. PostgreSQL делает также. Из других ответов Oracle и MSSQL имеют комментарии также.
Для меня, комбинации диаграммы UML для быстрого напоминания на именах полей, типах, и ограничениях и внешнем документе (TeX, но мог быть любой формат) с расширенным описанием всего связанного с базой данных - специальных значений, полевых комментариев, примечаний доступа, безотносительно - работы лучше всего.
Используйте SortedDict из SortedCollection .
SortedDict предоставляет те же методы, что и dict. Кроме того, SortedDict эффективно поддерживает свои ключи в отсортированном порядке. Следовательно, метод keys возвращает ключи в отсортированном порядке, метод popitem удаляет элемент с самым высоким ключом и т. Д.
Я использовал это - это работает. К сожалению, сейчас у меня нет времени для правильного сравнения производительности, но субъективно кажется, что он стал быстрее модуля bisect .
Чтобы ответить на ваш вопрос:
Is there a data structure like that available in Python?
Нет, нет. Но вы можете легко создать его самостоятельно, используя список в качестве базовой структуры и код из модуля bisect, чтобы поддерживать список в порядке и проверять совпадения.
class RangeList(list):
"""Maintain ordered list of non-overlapping ranges"""
def add(self, range):
"""Add a range if no overlap else reject it"""
lo = 0; hi = len(self)
while lo < hi:
mid = (lo + hi)//2
if range < self[mid]: hi = mid
else: lo = mid + 1
if overlaps(range, self[lo]):
print("range overlap, not added")
else:
self.insert(lo, range)
Я оставляю функцию overlaps
в качестве упражнения. (Этот код не проверен и может нуждаться в настройке)