Конференция "Начинающим" » начало работ с БД
 
  • 123456789igor © (10.10.12 18:10) [0]
    Добрый день!
    Хочу выполнить след задачу:
    создать базу данных которая хранит след данные
    1)Автомобили+id этого раздела(т.е 2 критерия id и имя)
    2)Мебель+id этого раздела
    тут нужно осуществить поиск по имени и добавление новых данных на пример "растения"
    затем на подобии иерархии
    переходим в автомобили
    там есть
    1)вольво+id этого раздела
    2)ауди+id этого раздела
    3)VW+id этого раздела
    тут нужно осуществить поиск по имени и добавление новых данных на пример "лада"
    затем опять иерархия
    переходим в ауди:
    1)a8 мощность объем id
    2)a7 мощность объем id
    тут нужно осуществить поиск по имени и добавление новых данных на пример "a4"
    так же с Вольво и др. но там другие критерии к примеру мощность и рассход
    C бд практически не знаком посоветуйте как осуществить данную задачу. Знаю в делфи вроде есть бд. Посоветуйте среду и парочку книжек по бд к этой среде. Приблизительно знаю как сделать просто базу данных а вот осуществить такую иерархию не знаю как, даже не представляю.
    Заранее благодарен.
  • Сергей М. © (10.10.12 20:55) [1]

    > Хочу .. базу данных которая хранит
    > 1)Автомобили
    > 2)Мебель
    > нужно добавление .. "растения"


    А завтра что ?
    Завтра захочешь "продукты" ?
    А послезавтра "шмотки" ?
    А послепослезавтра "еще черт т е что и сбоку бантик" ?
  • AV © (10.10.12 21:22) [2]
    две таблицы, одна представлена в виде TreeView
    вторая - атрибуты ("мощность и рассход")

    слева дерево, а, при выборе ветки, справа грид с атрибутами

    table Tree
    Id_tree
    Id_parent

    table Attr
    id_attr
    id_tree
    name

    id_tree id_parent name
    1 0 AUTO
    2 0 FLOWER
    3 1 VOLVO
    4 1 MERSEDES
    5 2 ROUSE
    6 2 CACTUS

    id_attr id_tree name
    1 1 AUTO NODE
    2 1 ONLY AUTO :)
    3 2 FLOWERS NODE
    4 2 Buy from us!!
    5 6 does not like water
    6 6 do not sit down
  • Сергей М. © (10.10.12 21:29) [3]

    > вторая - атрибуты ("мощность и рассход")


    Особо радует  применение атрибутов "мощность и рассход" к потенциальной категории, к примеру, "нижнее бельё")
  • AV © (10.10.12 21:33) [4]
    ну, тут атрибут абстрактный, только имя :)

    если что, можно расширить

    table Attr
    id_attr
    id_tree
    name
    id_Category

    table Category
    id_Category
    Name
  • AV © (10.10.12 21:38) [5]
    а вообще, напоминает, как ИШ цитировал как-то Кайта,  БД из 4х таблиц
    ну а что, зато всё по ТЗ :)
  • Сергей М. © (10.10.12 21:44) [6]
    Привлекательную идею и механику реализации задачи ведения масшабируемого номенклатора, сбацаного в Delphi+Firenird, можно подсмотреть, к примеру, у Ашота aka Kaif(с) в продукте Allegro

    http://www.gaapinvest.com/allegro/aboutallegro.php
    см. п."СПРАВОЧНИКИ: НАСЛЕДОВАНИЕ АТРИБУТОВ, ФОРМАТИРОВАНИЕ НАИМЕНОВАНИЙ"
  • AV © (10.10.12 23:18) [7]

    > СПРАВОЧНИКИ: НАСЛЕДОВАНИЕ АТРИБУТОВ, ФОРМАТИРОВАНИЕ НАИМЕНОВАНИЙ

    а..
    задачка MonoLif`a реализована
    В принципе, к подобному пришел дома, на досуге..
    только вот что-то не особо верится, что там все "на лету", как написано в рекламе
    это простой документ придется расшифровать минимум за 4-5 соединений..
    А если учесть, что все справочники динамические и неограниченно наследуемые - то и больше.
    Потом, как написано в полу-рекламе, используется генерированный на лету запрос.
    т.е. хранимок нет, движок БД заранее не откомпилил эти 4-5 соединений а то и больше

    короче, в "на лету" - "не верю!"
  • AV © (10.10.12 23:26) [8]
    Блин, запросы на custom БД, да еще и "на лету"
    имхо, через 2-3 года при нормальном обороте, это будет тормоз еще тот..
  • AV © (10.10.12 23:27) [9]
    хотя..
    Если т.н. "срезы на дату" (по аналогу "точку актуальности" желтой программы) делать часто
    и грамотно
  • kilkennycat © (11.10.12 00:58) [10]
    любая база данных эффективна и компактна всего из двух таблиц:
    1) таблица из двух полей: id и наименование.
    2) таблица записей, каждое поле которой word (думается мне, что достаточный размер) - ссылка на таблицу 1.

    пример, табличная запись стиха
    мама мыла
    Машу мылом
    Маша мыло
    не любила

    первая таблица:
    0 любила
    1 мама
    2 Маша
    3 Машу
    4 мыла
    5 мыло
    6 мылом
    7 не

    вторая таблица
    0 1 4
    1 3 6
    2 2 5
    3 7 0

    легко видно, что с увеличением числа записей эффективнось по объему возрастает. мне кажется, что первая таблица не превысит 20 тысяч записей, причем фактически это один столбец, а соответственно идеально сортированный, что офигенно увеличивает поиск.

    на такой идеологии у меня даже крутится пара программок, скорость сумасшедшая, главное вовремя остановиться и не поддаваться соблазну разделять слова на приставки, корни, суффиксы и окончания :)
  • kilkennycat © (11.10.12 01:02) [11]
    больше всего мне в этом нравится, что механизм перемещения по записям второй таблицы дико простой и наиболее быстрый.
  • AV © (11.10.12 09:24) [12]

    > kilkennycat ©

    а можно еще проще - первая таблица это 33 буквы :)
  • AV © (11.10.12 09:42) [13]
    или ее вообще не надо, есть же ASCII таблица
    и каждая буква и так имеет код в ней :)

    ----

    а как быть с 3х и более "словными" стихами?
    налету альтерить table добавляя очередной столбец FLD_X, который будет сразу nullable, а посему не очень идексированный?

    А средний рассказик как записать тогда..
    или записать ладно. Как потом получить..  Походу, запрос будет больше рассказика %)

    А "войну и мир" - вообще не хватит оперативки на запрос :)
  • kilkennycat © (11.10.12 10:57) [14]

    > а как быть с 3х и более "словными" стихами?

    все просто,прикидываем примерный наиболее употребительный размер записи. уместилось в одну, хорошо. не уместилось - последний байт = ссылка на продолжение и пишем вторую запись. еще немного и получим винчестер :)
  • MsGuns © (11.10.12 11:57) [15]
    То, что написано в сабже - скорее конец работы с БД, чем начало.
    Т.е. когда обследование предмета автоматизации завершено, объекты в деталях описаны, задачи поставлены, средства решения определены

    В данном случае, судя по "сказочности" описания, там и конь не валялся.
    Типа автор пришел, увидел, победил :)
  • Вова (12.10.12 05:00) [16]
    1С торговля и склад или подобная конфа, справочник номенклатура, туда все описаное можно запихать в любых количествах )

    Т.е. делается иерархия - папка(ну вот например автомобили) -> элементы, каждому элементу можно присвоить произвольное количество характеристик ), также есть у каждой папки и элемента код, у элемента еще и артикул )

    по аналогии в делфи ну видимо хотя бы 3 таблицы, первая это группы, вторая элементы, третья характеристики ).

    Либо даже одна таблица, просто в колонке одной указывать папка это или элемент или характеристика, а также колонку в которой указывать родителя ) короче 1С в тыщу раз проще ))
  • Вова (12.10.12 05:16) [17]
    хм, для характеристик видимо нужно еще 2 таблицы: "Названия характеристик" и "значения", и из этих двух таблиц организовать выбор в соответствующих полях первой таблицы характеристик, либо каждый раз руками вводить текст придется в поля первой таблицы характеристик.

    И самое веселое будет это соорудить удобоваримый интерфейс из этих таблиц.

    короче чисто по деньгам я щитаю коробка 1С дешевле выйдет, чем если с нуля программистом писать на делфи ) ведь полюбому там еще что то нужно будет со всем этим делать.
  • MonoLife2 (12.10.12 06:03) [18]

    > короче чисто по деньгам я щитаю


    "щитают" на пальцах, а по деньгам - считают
  • Inovet © (12.10.12 06:32) [19]
    > [0] 123456789igor ©   (10.10.12 18:10)
    > Знаю в делфи вроде есть бд.

    В Делфи есть доступ к различным СУБД, сами СУБД отдельно.
 
Конференция "Начинающим" » начало работ с БД
Есть новые Нет новых   [134430   +4][b:0][p:0.001]