Размышляя над системой, написанной на PHP, пришёл к пониманию того, что лежащую в основе графовую базу данных нужно переработать. Порядок привязанных узлов нужно отслеживать на уровне базы данных. Желательно сократить список технологий, задействованных при реализации базы данных, и максимально всё упростить. В идеале описать формальные требования. Чем и займусь.
address next link комментарий
1 0 1 узел 1
2 0 2 узел 2
3 4 5 узел 3 (последнее звено 5)
4 5 1 связь узла 3 с узлом 1
5 0 2 связь узла 3 с узлом 2 (последняя в цепи)
6 0 6 узел 6
Поскольку приложение, использующее базу данных, отслеживает тип узла, нет необходимости помечать узлы, привязанные к значениям. Функция node.hasValue() не нужна.
- Записи не удаляются.
- Связи могут только добавляться.
- Связи имеют направление.
- Одному строковому значению соответствует один узел.
- У всех узлов есть значение - NULL или хэш строки.
- Хранятся только цепочки связей.
- Звено ценпи состоит из порядкового номера звена, номера следующего звена и ссылки на звено-узел.
- Порядковый номер звена соответствует его расположению в файле.
- Узел - это первое звено в цепочке, которое не указывает на другие узлы.
- При каждом запросе узла, создаётся новый объект.
address next link комментарий
1 0 1 узел 1
2 0 2 узел 2
3 4 5 узел 3 (последнее звено 5)
4 5 1 связь узла 3 с узлом 1
5 0 2 связь узла 3 с узлом 2 (последняя в цепи)
6 0 6 узел 6
Поскольку приложение, использующее базу данных, отслеживает тип узла, нет необходимости помечать узлы, привязанные к значениям. Функция node.hasValue() не нужна.
Комментариев нет:
Отправить комментарий