Перейти к содержимому

Поиск по сайту

Результаты поиска по тегам 'субд'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Блоги

  • Робот Байт
  • Fingercomp's Playground
  • 1Ridav' - блог
  • Totoro Cookies
  • Блог cyber01
  • IncluderWorld
  • KelLiN' - блог
  • Крутой блог
  • eutomatic blog
  • Programist135 Soft
  • Сайт в сети OpenNet
  • PieLand
  • Очумелые ручки
  • Блог недоблоггера
  • В мире Майнкрафт
  • LaineBlog
  • Квантовый блог
  • Блог qwertyMAN'а
  • some blog name
  • Дача Игоря
  • Путешествия Xytabich'а
  • Рецепты программирования
  • Шкодим по крупному
  • 123
  • mineOS и её удивительный мир
  • Поляна говнокода Bumer 32

Форумы

  • Программирование
    • Программы
    • База знаний
    • Разработчикам
    • Вопросы
  • Игровой раздел
    • Игровые серверы
    • Моды и плагины
    • Жалобы
    • Ивенты и конкурсы
    • Файлы
  • Общение
    • Задать вопрос
    • Обратная связь
    • Беседка
    • Шкатулка
  • Технический раздел
    • Корзина

Группы продуктов

Нет результатов для отображения.


Искать результаты в...

Искать результаты, которые...


Дата создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по количеству...

Зарегистрирован

  • Начать

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


ВКонтакте


Gtalk


Facebook


Twitter


Город


Интересы

Найдено 2 результата

  1. Многие разрабатывают компьютеризированные хранилища, но мало кто публикует. Захотелось мне свое доработать и опубликовать... и я его не нашел. Либо затер сохранение, либо я его писал в каком-то кастомном клиенте, который удалил. В общем, печаль-беда. Предлагаю коллективно разработать умное хранилище на транспозерах, в которое, можно загружать/выгружать предметы, не заморачиваясь с проектированием и стройкой. Вот примерная архитектура моей системы, которую восстановил по памяти. К серверу подключена сеть из транспозеров и сундуков. При первом запуске, системе надо определить и сохранить свою топологию. Для этого, пользователь выбирает сундук, через который будет происходить ввод-вывод предметов, закидывает в него предмет, который будет играть роль метки при сканировании хранилища. Запускает сканирование в терминале. Система проверяет все транспозеры и находит метку. Сундук помечается как корневой и начинается сканирование. При сканировании, система выбирает еще не помеченный сундук и перемещает туда метку. Сундук помечается и путь к нему от корня записывается в базу данных. При повторном прохождении предмета через сундук в направлении от корня, путь перезаписывается, чтобы избежать конфликта в петлях. Представление данных: Адреса транспозеров записываются в список, позиция в этом списке используется во всех операциях с транспозерами. транспозеры = { [1] = uuid_1, [2] = uuid_2, [3] = uuid_3, ... } Имена предметов хранятся в двойном словаре, это позволяет не хранить в базе полное имя предмета, а только ссылку. Полное имя выглядит так: мод:имя_предмета:мета. предметы = { [1] = идентификатор_1, [идентификатор_1] = 1, [2] = идентификатор_2, [идентификатор_2] = 2, [3] = идентификатор_3, [идентификатор_3] = 3, ... } Для каждого сундука хранятся ссылки на смежные транспозеры, это позволяет перемещать предметы в любом направлении и очень быстро обновлять информацию о содержимом, даже если кто-то залез в хранилище руками. Под нулевым индексом хранится путь от корня. сундуки = { [1] = { [0] = {транспозер_1, транспозер_4, транспозер_10, ...}, транспозер_1 = сторона_1, транспозер_2 = сторона_2, транспозер_3 = сторона_3, ... }, ... } В основной базе данных хранится информация о расположении предметов, идентификатор сундука указывает на таблицу предметов, идентификатор предмета это ссылка на словарь, он указывает на таблицу слотов сундука, в которых лежит данный предмет. база_данных = { сундук_1 = { предмет_1 = { [слот1] = количество, [слот2] = количество, [слот3] = количество, ... }, ... }, ... } Счетчик это вспомогательная таблица для визуализации в терминале и транспортировки предметов. Ссылки на предметы служат указателями на таблицу, в которой первым элементом хранится суммарное количество этого предмета в системе, а дальше следуют ссылки на сундуки, которые содержат этот предмет. (У меня эта таблица была разделена на две, но зачем не могу вспомнить) счетчик = { предмет_1 = {суммарное_количество, сундук_1, сундук_2, ...}, предмет_2 = {суммарное_количество, сундук_1, сундук_2, ...}, предмет_3 = {суммарное_количество, сундук_1, сундук_2, ...}, ... } Первый слот во всех сундуках (кроме корневого) всегда свободен, это транспортировочный слот, по которому перемещаются предметы. Алгоритм импорта предмета очень прост, система находит свободный или неполный слот, берет путь из таблицы сундуков и перекачивает предмет, командуя транспозерам записанное направление, обновляет базу данных. Для экспорта ищется предмет, если он есть в ненулевом количестве, то выбираются сундуки и слоты с требуемым суммарным количеством и по очереди в корень переносятся предметы (в обратном направлении) и обновляется база. Для принудительного обновления информации, системе достаточно просканировать сундуки и записать хранящиеся в них предметы. А вот при добавлении транспозеров или сундуков, необходимо производить ту же операцию, что и при первом запуске. База данных получается полностью реляционная, с неполной связью. Ничего лишнего, кроме ссылок не хранится, в памяти сложных операций с таблицами не производится. Последний раз тестировал больше полугода назад, кажется использовал креативную шину, так что транспозеров было больше нормы, никаких проблем с памятью не наблюдалось.
  2. Данная версия системы управления базами данных (СУБД) под операционную систему OpenOS разработана для изучения особенностей работы реальной СУБД MySQL. Предупреждаю сразу: в ней реализованы далеко не все функции MySQL. Некоторые я посчитал несущественными или избыточными, до некоторых просто не дошли руки. Но то, что есть позволяет создавать адаптированные под Луа базы данных, и формировать несложные SQL-запросы к ним. Для установки СУБД на ОС-компьютер выполните команду pastebin run -f bS1kRJKw Если в компьютере установлена интернет-карта, вы должны увидеть такой текст: Добро пожаловать в программу установки СУБД MySQL Выберите тип установки: 1. Серверная часть 2. Клиентская часть 3. Полная установка Поскольку данная версия пока не поддерживает обмен между клиентом и сервером по сети, выбираем полную установку. После загрузки всех необходимых файлов, программа предложит перегрузить компьютер. Но мы пока не будем перегружать, а рассмотрим содержимое файла etc/dbms.cfg --Файл конфигурации СУБД MySQL DBpath="/mysql_db/" port=3306 password="" Параметр DBpath содержит путь к папке, в которой будут храниться создаваемые базы. Если эта папка отсутствует, то при запуске СУБД она будет создана автоматически. Измените этот параметр, если значение по умолчанию вас не устраивает. Параметр port содержит номер порта, через который, я надеюсь, когда нибудь можно будет обратиться к СУБД по сети. Параметр password призван защищать доступ к базам паролем, но эта опция пока не реализована и вряд ли когда нибудь будет. Так же к серверной части относится собственно СУБД - файл boot/dbms.lua, который благодаря своему расположению стартует автоматически и работает в фоновом режиме, что позволяет запускать на одном компьютере и сервер и клиент. Вот теперь настало время перегрузить компьютер. В клиентскую часть входят библиотека lib/mysql.lua и программа-монитор bin/mysql_mon.lua предоставляющая доступ к базам данных из командной строки. Библиотека mysql предоставляет следующие функции для работы с базами данных: При реализации функции query я сделал одно небольшое допущение: все служебные слова запроса следует писать строчными (маленькими) буквами. SQL-монитор mysql_mon позволяет отправлять запросы к СУБД из командной строки. Я старался сделать его похожим на Command Line Client, поэтому объяснять суть его работы не вижу смысла. Для выхода из программы введите "exit". Пример работы с СУБД: Пожалуйста оставляйте в этой теме пожелания какие функции из нереализованных еще следует реализовать и замечания о несоответствии работы существующих функций.
×
×
  • Создать...