Во что выливается построение одного нормального абзаца
Стреляюсь и вешаюсь с генератором текстов.
Смотрю, чем начало моего сгенерированного детектива отличается от начала нормального детектива. Читаю начало «Рождество Эркюля Пуаро»
Стивен поднял воротник пальто и быстро зашагал по платформе. Вокзал был окутан густым туманом. Паровозы громко гудели, выбрасывая клубы пара в сырой холодный воздух. Все вокруг было в грязи и дыму.
«Какая грязная страна, – с отвращением подумал Стивен, – и какой грязный город!»
Первое впечатление о Лондоне с его магазинами, ресторанами, хорошо одетыми, привлекательными женщинами успело потускнеть. Теперь город казался ему сверкающим, но фальшивым бриллиантом, да еще в скверной оправе.
Что, если вернуться в Южную Африку? Стивен ощущал острую тоску по родине. Солнце, голубое небо, сады, полные цветов, живые изгороди, синие вьюнки на стенах каждой лачуги…
А здесь повсюду грязь и суетящиеся толпы людей, которые снуют туда-сюда, словно муравьи вокруг своего муравейника.
«Лучше бы я не приезжал сюда», – подумал Стивен.
Итак, что имеем с самого начала. Четкая локация: Лондон, и что в нем есть. У меня четкой локации нет, пейзаж пишется от балды. Чтобы сделать четкую локацию, надоть или расписывать таблицу «Лондон» «Париж» «деревня Гадюкино» и указывать, что там может быть. Но это будет дохренища таблиц.
Второй вариант – сделать таблицу со списком локаций: индекс локации – локация.
1 – Лондон
2 – Париж
3 – лес
4 – айсберг в океане
А в таблице существительных сделать еще один столбец, какой объект принадлежит какой локации. Но тогда будет фигня, ведь туман, например, может быть везде, или дерево – везде кроме айсберга. А с локациями надо что-то делать, ведь программа тупо не знает, что паровоз бывает на вокзале, и не бывает... гхм... там, где нет рельсов.
Дальше. В тексте показано отношение героя к локации. И тоже ведь не от балды взято, нравится – не нравится. То есть, нужно указывать в базе данных, что любит герой, что не любит: какую еду, какую погоду, какие элементы пейзажа и природные явления. У меня и так в таблице персонажей 17 столбцов, а теперь будет: индекс природного явления + явление, индекс элемента пейзажа + пейзаж, индекс еды + еда, индекс напитка + напиток, и это походу еще не все. Тут надо действовать как-то иначе. Или сделать две таблицы – одну для сюжета (кто убийца, какие улики, и.т.д.) а вторую для предпочтений героев? Но по идее это должно пересекаться, например, если герой жрет шоколадки как не в себя, и оставил на месте преступления фантик...
Еще один момент. Здесь указано, что герой видит город впервые. Это тоже важно. Значит, нужно делать в программе или рандомизацию (впервые или не впервые герой видит локацию) или вести подробно сюжетную линию, поехал туда-то, потом туда-то... Про перемещения у меня еще вообще ничего нет. Значит, надо таблицу локаций – тут действие в Лондоне, тут в Париже...
И еще момент. «город казался фальшивым бриллиантом». Кто попало такое не скажет, это скажет только житель Африки, имеющий дело с добычей бриллиантов. То есть, еще один момент: занести в таблицу персонажей, с чем персонаж имел дело в своей жизни, с чем он будет сравнивать незнакомые предметы и места.
Итого все упирается в дохренища инфы про персонажа и про локацию. Делать подробную таблицу про Лондон, что там есть, чего там нет. У человека-то в голове эта инфа есть. И таблицу про персонажа. Где родился, где учился, где влюбился, где женился, где умер.
Не слишком ли много всего получается...
А куда деваться, как иначе-то... дать себе пенделя и делать кучу таблиц.
Aagira 2 года назад #
Мария Фомальгаут 2 года назад #
Aagira 2 года назад #
И проблема в том, чтобы сделать правильные, удобные пересечения данных, или же в том, что слишком разрастается база?
Например, я сейчас делаю компонент призов на сайте, скоро закончу (надеюсь, т.к. еще много работы с визуалом осталось). Изначально, когда нутро программировала, встала такая проблема: где именно внедрять столбец с количеством наград у пользователя?
Варианты были: сделать дополнительный столбец во встроенной в движок таблице пользователей (в дополнение к оверкуче других столбцов), либо создать отдельную таблицу из всего двух столбцов, где в первом будет ид пользователя, а во втором — число его наград.
Казалось бы, проще сделать столбец в уже имеющейся таблице. Меньше таблиц, меньше мороки и обращаться к готовой таблице намного легче, т.к. обращение к ней уже прописано в системе. Но! По моему мнению, грамотнее сделать таблицу отдельно. Во-первых, трогать системную таблицу лишний раз ни к чему, т.к. какое-нибудь хитромудрое обновление движка сможет наконфликтовать там, а еще — потому что возможен такой вариант, при котором теперешние данные придется вносить в пустую таблицу движка, и лишний столбец окажется там помехой (такое я уже делала несколько раз здесь на сайте, так что, проблема знакомая). Во-вторых же, и в-главных: это МОЙ собственный модуль! Я могу его удалить с сайта, могу переписать под другой сайт, делаю с ним что захочу, короче. И намного лучше, если этот модуль не будет зависеть от системы, а будет отдельно, с отдельными таблицами (там их не одна), и его будет легко в любой момент удалить, изменить, добавить столбцы, если от количества наград пользователя будет еще что-то зависеть, и т.д. Так что, хоть я и сделала это все первым способом, но постараюсь в ближайшее время найти возможность переписать все это под второй.
Так что, смотри сама, насколько зависимо то, что ты добавляешь в свою программу, от остальных ее частей, или, точнее, насколько те части зависят от этих настроек. Может быть, некоторые возможности можно сделать в виде отдельных модулей и не бояться плодить таблицы для них.
Мария Фомальгаут 2 года назад #
Aagira 2 года назад #
Для проекта твоего масштаба это мизер.