powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Шаблон класса для представления справочников
127 сообщений из 127, показаны все 6 страниц
Шаблон класса для представления справочников
    #38538368
nnezam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Поможите, плиз.

Имеется задача. Есть несколько справочников в БД (Firebird). Принципы работы справочников крайне похожи, но не совсем одинаковы. Мысль: сделать некий шаблон класса справочника. А потом наследуясь от него реализовывать классы для всех справочников.
Вопроса два:
1. Правильные ли мысли?
2. Если мысли верные, то на основе чего создать шаблон класса; да еще так сваять, чтобы быстро цеплять к Девовскому гриду.

На основе реализации IBindingList получается, но как то коряво и громоздко.
На основе Bindinglist<T> грид не цепляет автоматом проперти и т.д.

Наверняка есть бест практис. Подскажите - что почитать.
P.S. Не хочется ковыряться со всякими XPO, EF и т.п. ( Хочу свой маленький велосипедик:))
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38539565
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nnezam,

сделай на основе:
Код: c#
1.
2.
3.
4.
5.
6.
class DictItem
{
public int Id{get; private set;}

public string Name {get;set;}
}
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38539681
nnezam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pation,

как создать класс БО более или менее понятно.
На основе чего создать коллекцию БО? Вот в чем суть вопроса.)
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38539686
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё это обобщение справочников - от лукавого.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38539695
nnezam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я правильно понимаю, что берем и для каждого, например, справочника ваяем свой класс коллекции элементов?
Дело в том, что в получившихся классах коллекций ( наследники от BindingList<Dict1>) много одинакового кода...
Лень - это же двигатель прогресса)) Вот и хочется что то придумать изящное...
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38539713
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВсё это обобщение справочников - от лукавого. во-во! +100. А потом будет для каждого справочника по костылю). и в итоге будет супер код с кучей if-else.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38539906
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВсё это обобщение справочников - от лукавого. Нет! :-)
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38539946
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУВсё это обобщение справочников - от лукавого. Нет! :-)О, давайте говнокодом справочниками меряться

Мой вариант:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
[Serializable]
public class Reference : Record, IConvertibleTo<ReferenceCondition>
{
    protected string code;
    protected string name;
    private Reference parent;
    private ReferenceType type;

    public Reference()
        : this(ReferenceType.Unknown)
    {
    }

    public Reference(ReferenceType type)
    {
        this.type = type;
    }

    [XmlAttribute, DefaultValue(null)]
    public virtual string Code
    {
        get { return code; }
        set { code = value; }
    }

    [XmlAttribute, DefaultValue(null)]
    public virtual string Name
    {
        get { return name; }
        set { name = value; }
    }

    [XmlElement]
    public virtual Reference Parent
    {
        get { return parent; }
        set { parent = value; }
    }

    [XmlIgnore, DefaultValue(ReferenceType.Unknown)]
    public virtual ReferenceType Type
    {
        get { return type; }
        set { type = value; }
    }

    public override void Clear()
    {
        base.Clear();

        code = null;
        name = null;
        parent = null;
    }

    public override bool IsEmpty()
    {
        return base.IsEmpty()
            && String.IsNullOrEmpty(code)
            && String.IsNullOrEmpty(name);
    }

    protected override void ToEmpty()
    {
        base.ToEmpty();

        parent = new Reference();
    }

    public override string ToString()
    {
        if (!String.IsNullOrEmpty(name))
            return name;
        if (!String.IsNullOrEmpty(code))
            return code;
        return String.Empty;
    }

    public static bool CodeIsEmpty(Reference item)
    {
        return (item == null || String.IsNullOrEmpty(item.Code));
    }

    public static bool NameIsEmpty(Reference item)
    {
        return (item == null || String.IsNullOrEmpty(item.Name));
    }

    // Реализация интерфейса IConvertibleTo<ReferenceCondition>
    public virtual void CopyTo(ReferenceCondition item)
    {
        base.CopyTo(item);

        item.Code = code;
        item.Name = name;
        item.Parent = ConvertTo<ReferenceCondition>(parent);
        item.Type = type;
    }
}
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38539952
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конкретный справочник:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
[Serializable]
public class NearbyPlace : Reference, IConvertibleTo<NearbyPlaceCondition>
{
    private float distance;

    /// <summary>
    /// Растояние до места
    /// </summary>
    [XmlAttribute, DefaultValue(0)]
    public float Distance
    {
        get { return distance; }
        set { distance = value; }
    }

    public override void Clear()
    {
        base.Clear();

        distance = 0f;
    }

    public override string ToString()
    {
        if (distance > 0f)
            return String.Format("{0} - {1:f2} km", base.ToString(), distance);
        return base.ToString();
    }

    // Реализация интерфейса IConvertibleTo<NearbyPlaceCondition>
    public void CopyTo(NearbyPlaceCondition item)
    {
        base.CopyTo(item);

        if (distance > 0f)
            item.MaxDistance = distance;
    }
}
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540012
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA... говнокодом ...Странное у Вас отношение к результатам своей работы.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540040
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANA... говнокодом ...Странное у Вас отношение к результатам своей работы.Здоровая само- и не только критика
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540071
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУВсё это обобщение справочников - от лукавого. Нет! :-)
А кто сказал, что идентификаторы должны быть интами? :) Может быть вперемешку и как угодно.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540111
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА кто сказал, что идентификаторы должны быть интами?Я сказал! Поощарять бардак не собираюсь.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540127
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА кто сказал, что идентификаторы должны быть интами? :) Может быть вперемешку и как угодно.

long + guid :-) - самые частые у меня были.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540158
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Кпропущено...
Нет! :-)
А кто сказал, что идентификаторы должны быть интами? :) Может быть вперемешку и как угодно.Дак у него одна база на всю жизнь, у него не может быть ничего, кроме интов :)
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540167
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAМСУпропущено...

А кто сказал, что идентификаторы должны быть интами? :) Может быть вперемешку и как угодно.Дак у него одна база на всю жизнь, у него не может быть ничего, кроме интов :)Это хорошо или плохо?
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540197
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Кпропущено...
Нет! :-)
А кто сказал, что идентификаторы должны быть интами? :) Может быть вперемешку и как угодно.

=)) я тут в одной конторе увидел айдюхи: decimal - супер
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540204
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationМСУпропущено...

А кто сказал, что идентификаторы должны быть интами? :) Может быть вперемешку и как угодно.

=)) я тут в одной конторе увидел айдюхи: decimal - супер

и объяснение гавноглавного кодера : в оракле нет интов
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540207
LameUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationnnezam,

сделай на основе:
Код: c#
1.
2.
3.
4.
5.
6.
class DictItem
{
public int Id{get; private set;}

public string Name {get;set;}
}




Я вот до сих не могу понять логику людей, дающих такие названия!
Либо DictionaryItem, либо DictIt если уж сокращать так каждое слово :) !
Видел еще аналог SpravItem.. где то в 1с подобном коде....
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540213
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationpationпропущено...


=)) я тут в одной конторе увидел айдюхи: decimal - супер

и объяснение гавноглавного кодера : в оракле нет интов
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540229
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Дак у него одна база на всю жизнь, у него не может быть ничего, кроме интов :)Это хорошо или плохо?Это нормально :)
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540250
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУА кто сказал, что идентификаторы должны быть интами?Я сказал! Поощарять бардак не собираюсь.
В MS SharePoint идентификаторы списков и библиотек инты, в MS Dynamics CRM гуиды. Кого на кол?

Arm79long + guid :-) - самые частые у меня были.
Да хоть массив байт. Серьезно :) Тот же токен доменной учетной записи. А тут Леша нам впаривает универсальный справочник. Мда, дела...

skyANAДак у него одна база на всю жизнь, у него не может быть ничего, кроме интов :)
Именно, вот и пытаюсь наставить на путь истинный сбившегося человека

Алексей КskyANAпропущено...
Дак у него одна база на всю жизнь, у него не может быть ничего, кроме интов :)Это хорошо или плохо?
Это дико Но нормально ))

pation=)) я тут в одной конторе увидел айдюхи: decimal - супер
Тоже норм ))
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540296
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если кто-то из присутствующих не владеет элементарными навыками ООП, я не виноват. :-)

Guid нужен, чтобы обеспечить уникальность между разными серверами. Необходимость такой уникальности кодов элементов классификаторов сомнительна. Если этого не понимает кто-то из присутствующих, то я не виноват тоже.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540301
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЕсли кто-то из присутствующих не владеет элементарными навыками ООП, я не виноват. :-)
Ути какие мы строгие

Алексей КGuid нужен, чтобы обеспечить уникальность между разными серверами.
Откуда такое громкое заявление? На нобель идёшь, не меньше ))

Алексей КНеобходимость такой уникальности кодов элементов классификаторов сомнительна. Если этого не понимает кто-то из присутствующих, то я не виноват тоже.
Гуиды - для кросссерверности! Всем по пиву, ура, товарищи!
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540306
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КGuid нужен, чтобы обеспечить уникальность между разными серверами.
Откуда такое громкое заявление? На нобель идёшь, не меньше ))Ну тогда озвучивай остальные причины, из-за которых требуется делать в БД поле типа Guid:

1. Уникальность между разными серверами.
2. ...
3. ...
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540316
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУпропущено...

Откуда такое громкое заявление? На нобель идёшь, не меньше ))Ну тогда озвучивай остальные причины, из-за которых требуется делать в БД поле типа Guid:

1. Уникальность между разными серверами.
2. ...
3. ...

http://ru.wikipedia.org/wiki/GUID Его главная особенность — уникальность, которая позволяет создавать расширяемые сервисы и приложения без опасения конфликтов, вызванных совпадением идентификаторов.

Причем тут "разные сервера"? :)

Во-вторых, я уже писал. В компании есть 100500 различных систем, их нужно интегрировать, как-то обвязывать. Как можно ограничиваться только интами, я не понимаю.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540321
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гуиды нужны не только для обеспечения уникальности между разными сервисами, но и для репликации например.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540322
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Кпропущено...
Ну тогда озвучивай остальные причины, из-за которых требуется делать в БД поле типа Guid:

1. Уникальность между разными серверами.
2. ...
3. ...

http://ru.wikipedia.org/wiki/GUID Его главная особенность — уникальность, которая позволяет создавать расширяемые сервисы и приложения без опасения конфликтов, вызванных совпадением идентификаторов.

Причем тут "разные сервера"? :)

Во-вторых, я уже писал. В компании есть 100500 различных систем, их нужно интегрировать, как-то обвязывать. Как можно ограничиваться только интами, я не понимаю.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540328
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Гуиды нужны не только для обеспечения уникальности между разными сервисами , но и для репликации например.Серверами я сказал. Типичный пример - да, репликация.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540329
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что касается int - то ММВБ (РТС) уже давно перешло на long. Номера заявок превысили размерность типа.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540331
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЕсли кто-то из присутствующих не владеет элементарными навыками ООП, я не виноват. :-)А при чём тут ООП? :)

Для идентификаторов из внешних систем я string использую, т.к. где-то guid-ы, где-то хэши, где-то ObjectId, где-то строки, где-то инты, где-то лонги и т.д., и т.п.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540343
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Что касается int - то ММВБ (РТС) уже давно перешло на long. Номера заявок превысили размерность типа.Но это же не для классификаторов.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540352
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНо это же не для классификаторов.
Да, таблица заявок - это не словарь. Согласен. Я исходил из своей ситуации, когда бизнес-объект создавался не для классификатора, а в общем - для таблицы.

Как тип классификатора - символ. Исключительно из удобства чтения разработчиком.

Пример:
справочник состояний: a - активный, d - удаленный

мне было бы удобнее писать: select * from orders where state = 'a'
чем заморачиваться на select * from orders join states on orders.stateId = states.Id and states.Name = 'активный'.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540360
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КArm79Что касается int - то ММВБ (РТС) уже давно перешло на long. Номера заявок превысили размерность типа.Но это же не для классификаторов.И для классификаторов может возникнуть такая необходимость.
Например когда идентификаторы генерируются по какому-то правилу, а не тупо инкрементом.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540365
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Но это же не для классификаторов.И для классификаторов может возникнуть такая необходимость.
Например когда идентификаторы генерируются по какому-то правилу, а не тупо инкрементом.И что мешает для этого использовать тип int? Ну в крайнем случае long, но маловероятно.

Ни разу не встречал необходимости генерации классификатора. И, вероятно, не встречу.
викиКлассификатор, или (от лат. classis — разряд и facere — делать) — систематизированный перечень наименованных объектов, каждому из которых в соответствие дан уникальный код. Классификация объектов производится согласно правилам распределения заданного множества объектов на подмножества (классификационные группировки) в соответствии с установленными признаками их различия или сходства.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540370
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
таблица с ИНН - как воспринимаете? Справочник или нет?
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540372
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Но это же не для классификаторов.И для классификаторов может возникнуть такая необходимость.
Например когда идентификаторы генерируются по какому-то правилу, а не тупо инкрементом.

спор не о чём:
Код: c#
1.
2.
3.
4.
5.
6.
interface IDictItem
{
public IComparable Id{get; private set;}

public string Name {get;set;}
}



ТС судя по всему интересуется вопросом из чего делать коллекцию

биндинг лист нормальное решение, грид цепляется без проблем
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540373
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Но это же не для классификаторов.И для классификаторов может возникнуть такая необходимость.
Например когда идентификаторы генерируются по какому-то правилу, а не тупо инкрементом.

спор не о чём:
Код: c#
1.
2.
3.
4.
5.
6.
interface IDictItem
{
public IComparable Id{get; private set;}

public string Name {get;set;}
}



ТС судя по всему интересуется вопросом из чего делать коллекцию

биндинг лист нормальное решение, грид цепляется без проблем
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540374
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79таблица с ИНН - как воспринимаете? Справочник или нет?Нет.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540510
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationспор не о чёмДа спора-то как такового нет.

Лично для меня очевидно, что позиция Алексея в очередной раз строится на том, что вот он конкретно с этим не сталкивался, следовательно на эту тему и не стоит думать.

Это нормально.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540518
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лёня, как ты думаешь, почему в мембершип провайдере у айдишника юзера (ProviderUserKey) тип object? Только не торопись, подумай сначала :)

MembershipUser.ProviderUserKey
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540521
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
И для классификаторов может возникнуть такая необходимость.
Например когда идентификаторы генерируются по какому-то правилу, а не тупо инкрементом.И что мешает для этого использовать тип int? Ну в крайнем случае long, но маловероятно.В int не влазило, long - нормально.

Алексей КНи разу не встречал необходимости генерации классификатора .Под генерацией классификатора Вы генерацию идентификатора подразумеваете?
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540572
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЛёня, как ты думаешь, почему в мембершип провайдере у айдишника юзера (ProviderUserKey) тип object? Только не торопись, подумай сначала :)

MembershipUser.ProviderUserKey Ещё раз, для "танкистов", учётка пользователя не является записью из классификатора.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540595
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВ int не влазило, long - нормально.Может способ присваивания кодов так себе?
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540611
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУЛёня, как ты думаешь, почему в мембершип провайдере у айдишника юзера (ProviderUserKey) тип object? Только не торопись, подумай сначала :)

MembershipUser.ProviderUserKey Ещё раз, для "танкистов", учётка пользователя не является записью из классификатора.

А что должно являться? Дай чёткие определения и правила :)
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540614
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей КНи разу не встречал необходимости генерации классификатора .Под генерацией классификатора Вы генерацию идентификатора подразумеваете?Согласен. Вы про генерацию кодов, а не того, о чём я подумал. Невнимательно прочитал, сори.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540617
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА что должно являться?Должно.
МСУДай чёткие определения и правила :)Топик про классификатор.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540622
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУА что должно являться?Должно.
После "что" не запятой. Следовательно, переосмысли еще раз вопрос :)

Алексей КМСУДай чёткие определения и правила :)Топик про классификатор.
Ну а я про что? Ты как-то лихо направо и налево по каким-то своими критериям отсеиваешь, что должно являться справочником, а что не должно. Раскрой карты уже, я тоже хочу быть умничкой
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540633
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAВ int не влазило, long - нормально.Может способ присваивания кодов так себе?Уникальный код и идентификатор - это разные вещи. Код вообще не обязан быть чисто числовым.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540635
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Под генерацией классификатора Вы генерацию идентификатора подразумеваете?Согласен. Вы про генерацию кодов, а не того, о чём я подумал. Невнимательно прочитал, сори.Я про генерацию идентификаторов
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540660
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Кпропущено...
Должно.
После "что" не запятой. Следовательно, переосмысли еще раз вопрос :)"Казнить нельзя помиловать" (ц)
МСУАлексей Кпропущено...
Топик про классификатор.
Ну а я про что? Ты как-то лихо направо и налево по каким-то своими критериям отсеиваешь, что должно являться справочником, а что не должно. Раскрой карты уже, я тоже хочу быть умничкой Давай лучше я спрошу. :-)

1. По моим наблюдениям, существует масса случаев, когда у объекта поля { int ID, string Name } . Обычно такие объекты отображаются в комбобоксах. Я для таких случаев заготовил специальный класс и DataTemplate для его визуализации. В случаях, когда этот класс не подходит, применяется специальный класс.

2. Применение в классификаторах нецелочисленного типа для первичного ключа встречается достаточно редко. Если кто-то и применяет - Бог ему судья.

3. Guid применяют в качестве первичного ключа в случаях, когда требуется межсерверная уникальность. Такая уникальность для классификаторов обычно не требуется.

В чём я не прав?
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540666
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Может способ присваивания кодов так себе?Уникальный код и идентификатор - это разные вещи. Код вообще не обязан быть чисто числовым.skyANAАлексей Кпропущено...
Согласен. Вы про генерацию кодов, а не того, о чём я подумал. Невнимательно прочитал, сори.Я про генерацию идентификаторов Я про формирование первичного ключа. "Код" это или "идентификатор", в Вашем понимании, я не знаю.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540724
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУпропущено...

После "что" не запятой. Следовательно, переосмысли еще раз вопрос :)"Казнить нельзя помиловать" (ц)
МСУпропущено...

Ну а я про что? Ты как-то лихо направо и налево по каким-то своими критериям отсеиваешь, что должно являться справочником, а что не должно. Раскрой карты уже, я тоже хочу быть умничкой Давай лучше я спрошу. :-)

1. По моим наблюдениям, существует масса случаев, когда у объекта поля { int ID, string Name } . Обычно такие объекты отображаются в комбобоксах. Я для таких случаев заготовил специальный класс и DataTemplate для его визуализации. В случаях, когда этот класс не подходит, применяется специальный класс.

2. Применение в классификаторах нецелочисленного типа для первичного ключа встречается достаточно редко. Если кто-то и применяет - Бог ему судья.

3. Guid применяют в качестве первичного ключа в случаях, когда требуется межсерверная уникальность. Такая уникальность для классификаторов обычно не требуется.

В чём я не прав?

Боже ж ты мой. Ну хорошо, получилось у тебя обобщить десяток банальных справочников до вида { int ID, string Name }. Ну и в чем профит кодеманства ООП всея мира? Какая-то экономия непонятно чего на спичках с сомнительной выгодой. Короче, милок, всё это от лукавого. Так и запротоколируй
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540728
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это как wpf tabbed mdi, вроде и не mdi, вроде не пашет таскбарность, вроде всё как-то через жопу, но таки работает же
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540823
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Уникальный код и идентификатор - это разные вещи. Код вообще не обязан быть чисто числовым.skyANAпропущено...
Я про генерацию идентификаторов Я про формирование первичного ключа. "Код" это или "идентификатор", в Вашем понимании, я не знаю.Хорошо. Код классификатора и первичный ключ - в общем случае это разные вещи.

Я про генерацию первичного ключа (идентификатора).
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540953
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУБоже ж ты мой.Испугался?
МСУНу хорошо, получилось у тебя обобщить десяток банальных справочников до вида { int ID, string Name }.От пятидесяти, меньше не держим.
МСУНу и в чем профит кодеманства ООП всея мира?DRY
МСУКакая-то экономия непонятно чего на спичках с сомнительной выгодой.Выгода существенна.
МСУКороче, милок, всё это от лукавого. Так и запротоколируй Секретаршу нашёл?
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38540985
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУпропущено...

После "что" не запятой. Следовательно, переосмысли еще раз вопрос :)"Казнить нельзя помиловать" (ц)
МСУпропущено...

Ну а я про что? Ты как-то лихо направо и налево по каким-то своими критериям отсеиваешь, что должно являться справочником, а что не должно. Раскрой карты уже, я тоже хочу быть умничкой Давай лучше я спрошу. :-)

1. По моим наблюдениям, существует масса случаев, когда у объекта поля { int ID, string Name } . Обычно такие объекты отображаются в комбобоксах. Я для таких случаев заготовил специальный класс и DataTemplate для его визуализации. В случаях, когда этот класс не подходит, применяется специальный класс.

2. Применение в классификаторах нецелочисленного типа для первичного ключа встречается достаточно редко. Если кто-то и применяет - Бог ему судья.

3. Guid применяют в качестве первичного ключа в случаях, когда требуется межсерверная уникальность. Такая уникальность для классификаторов обычно не требуется.

В чём я не прав?Я бы простые справочники классификаторами не называл. Ну не укладывается у меня классификация дефектов нефтепровода в два поля: int ID, string Name
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541010
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУНу и в чем профит кодеманства ООП всея мира?DRY
Это ж пипец просто, обобщил ID и Name, и вот тебе целый DRY. Ну прямо робота написал с кнопкой "Сделать всё"

Вот тебе флаг за это ))

...


Алексей КМСУКакая-то экономия непонятно чего на спичках с сомнительной выгодой.Выгода существенна.
ID и Name - это существенная выгода? Я плачу, бро...

Алексей КСекретаршу нашёл?
Просто потыкал в тебя палочкой и измерил реакцию по приборам. Пациент здоров, но легкая шоковая терапия не помешала бы
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541447
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЭто ж пипец просто, обобщил ID и Name, и вот тебе целый DRY. Ну прямо робота написал с кнопкой "Сделать всё" Экономия на буквах есть и хуже не стало. Чем недоволен-то? :-)
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541449
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЯ бы простые справочники классификаторами не называл.Критерии простоты?
skyANAНу не укладывается у меня классификация дефектов нефтепровода в два поля: int ID, string Name У меня классификатор обородувания тягового подвижного состава в ID-Name тоже не укладывается, но что это меняет? Я же не говорю о структуре данных в БД. Я говорю больше о комбобоксах.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541507
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЭкономия на буквах есть и хуже не стало. Чем недоволен-то? :-)
Бро, ну какие это буквы в самом-то деле :) Кроме головной боли и геморроя на попе, тут нечего поиметь. У меня 100500 атрибутов у сущности / справочника / классификатора / букварька / шняжки / или как ты там это называешь. И (о, да!) 100501-й и 100502-й - это, как-раз, ID и Name. Не пойму, мне радоваться или плакать, что я забомбил такое неимоверное обобщение?
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541541
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЭкономия на буквах есть и хуже не стало. Чем недоволен-то? :-)
Бро, ну какие это буквы в самом-то деле :) Кроме головной боли и геморроя на попе, тут нечего поиметь. У меня 100500 атрибутов у сущности / справочника / классификатора / букварька / шняжки / или как ты там это называешь. И (о, да!) 100501-й и 100502-й - это, как-раз, ID и Name. Не пойму, мне радоваться или плакать, что я забомбил такое неимоверное обобщение? Если это не надо тебе, это не значит, что это не надо мне. Не? :-)
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541553
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Дак у него одна база на всю жизнь, у него не может быть ничего, кроме интов :)Это хорошо или плохо?Интов однажды может просто не хватить. ВНЕЗАПНО
А еще идентификатором может быть всё что угодно, включая строку.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541562
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЕсли это не надо тебе, это не значит, что это не надо мне. Не? :-)
Это левотня никому не нужна, тебе в том числе. Верь мне (с)
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541629
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmaticАлексей Кпропущено...
Это хорошо или плохо?Интов однажды может просто не хватить. ВНЕЗАПНОЭто ведь классификатор. Чтобы такое случилось, нужно произвести разбиение объектов на ~2 милиарда категорий. Не думаю, что такая предметная область существует.
enigmaticА еще идентификатором может быть всё что угодно, включая строку.Повторюсь, Бог им судья.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541631
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВерь мне (с) Не сегодня.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541637
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
* мил л иарда
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541733
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

Сорри, это я в целом про идентификаторы.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541825
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAЯ бы простые справочники классификаторами не называл.Критерии простоты?ИМХО:
1. для описания сущности достаточно трёх атрибутов: ID, Code, Name;
2. мало значений (данных)

Алексей КskyANAНу не укладывается у меня классификация дефектов нефтепровода в два поля: int ID, string Name У меня классификатор обородувания тягового подвижного состава в ID-Name тоже не укладывается, но что это меняет? Я же не говорю о структуре данных в БД. Я говорю больше о комбобоксах.О, третий критерий: удобно выбирать из комбобокса. Хотя он следует из первых двух

Хотел бы я посмотреть на пользователя, что ищет нужные ему данные в классификаторе обородувания тягового подвижного состава, натирая палец об колёсико мыши.

Для таких вещей обычно лукапы делают: тыкаешь кнопочку, открывается форма поиска.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541842
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кenigmaticпропущено...
Интов однажды может просто не хватить. ВНЕЗАПНОЭто ведь классификатор. Чтобы такое случилось, нужно произвести разбиение объектов на ~2 милиарда категорий. Не думаю, что такая предметная область существует.Алексей, а что такое категории? Уникальные коды? Опять путаете с идентификаторами?
Алексей КНе думаю, что такая предметная область существует.Какая? Где int-а не хватает для идентификаторов классификатора? Нефтянка.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541845
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дефектоскопия трубопроводов.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541861
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Критерии простоты?ИМХО:
1. для описания сущности достаточно трёх атрибутов: ID, Code, Name;
2. мало значений (данных)Так себе.
skyANAАлексей Кпропущено...
У меня классификатор обородувания тягового подвижного состава в ID-Name тоже не укладывается, но что это меняет? Я же не говорю о структуре данных в БД. Я говорю больше о комбобоксах.О, третий критерий: удобно выбирать из комбобокса. Хотя он следует из первых двух

Хотел бы я посмотреть на пользователя, что ищет нужные ему данные в классификаторе обородувания тягового подвижного состава, натирая палец об колёсико мыши.

Для таких вещей обычно лукапы делают: тыкаешь кнопочку, открывается форма поиска.Комбобокс - это не единственный вариант. Для больших классификаторов применяем поиск по вхождению в название введённой строки.

"Ввод значений по классификатору" .

Исходники контрола .
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541869
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...


Таббед мди тухловат имхо. Не? )
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541870
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Это ведь классификатор. Чтобы такое случилось, нужно произвести разбиение объектов на ~2 милиарда категорий. Не думаю, что такая предметная область существует.Алексей, а что такое категории? Уникальные коды? Опять путаете с идентификаторами? викиКлассифика́тор, или (от лат. classis — разряд и facere — делать) — систематизированный перечень наименованных объектов, каждому из которых в соответствие дан уникальный код. Классификация объектов производится согласно правилам распределения заданного множества объектов на подмножества (классификационные группировки) в соответствии с установленными признаками их различия или сходства.

skyANAАлексей КНе думаю, что такая предметная область существует.Какая? Где int-а не хватает для идентификаторов классификатора? Нефтянка.Ну не может быть в классификаторе 2 миллиарда записей. Или это не классификатор, или способ присвоения кодов оставляет большие "дыры". Если второе, то я знаю что такое может быть, но ничего хорошего в этом не вижу, о чём и писал выше.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541872
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУТаббед мди тухловат имхо. Не? )Он прекрасен!
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541945
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КОн прекрасен!
Пока не будет таскбарности, ни о какой красе не может быть и речь. Ибо.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541949
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КОн прекрасен!
Пока не будет таскбарности, ни о какой красе не может быть и речь. Ибо.Нет. Она будет бесить.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541977
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Алексей, а что такое категории? Уникальные коды? Опять путаете с идентификаторами? викиКлассифика́тор, или (от лат. classis — разряд и facere — делать) — систематизированный перечень наименованных объектов, каждому из которых в соответствие дан уникальный код. Классификация объектов производится согласно правилам распределения заданного множества объектов на подмножества (классификационные группировки) в соответствии с установленными признаками их различия или сходства.

skyANAпропущено...
Какая? Где int-а не хватает для идентификаторов классификатора? Нефтянка.Ну не может быть в классификаторе 2 миллиарда записей. Или это не классификатор, или способ присвоения кодов оставляет большие "дыры". Если второе, то я знаю что такое может быть, но ничего хорошего в этом не вижу, о чём и писал выше.Не может, но: 15481210 .
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541982
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей КНу не может быть в классификаторе 2 миллиарда записей. Или это не классификатор, или способ присвоения кодов оставляет большие "дыры". Если второе, то я знаю что такое может быть, но ничего хорошего в этом не вижу, о чём и писал выше .Не может, но: 15481210 .
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541990
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНет. Она будет бесить.
С чего бы это вдруг?
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38541997
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КНет. Она будет бесить.
С чего бы это вдруг?А почему нет?
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542030
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КА почему нет?
Потому что да
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542032
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КА почему нет?
Потому что да Да?!
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542041
IApple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAАлексей Кпропущено...
"Казнить нельзя помиловать" (ц)
пропущено...
Давай лучше я спрошу. :-)

1. По моим наблюдениям, существует масса случаев, когда у объекта поля { int ID, string Name } . Обычно такие объекты отображаются в комбобоксах. Я для таких случаев заготовил специальный класс и DataTemplate для его визуализации. В случаях, когда этот класс не подходит, применяется специальный класс.

2. Применение в классификаторах нецелочисленного типа для первичного ключа встречается достаточно редко. Если кто-то и применяет - Бог ему судья.

3. Guid применяют в качестве первичного ключа в случаях, когда требуется межсерверная уникальность. Такая уникальность для классификаторов обычно не требуется.

В чём я не прав?Я бы простые справочники классификаторами не называл. Ну не укладывается у меня классификация дефектов нефтепровода в два поля: int ID, string Name

С тремя пунктами от Алексей К сотгласен полностью. Вы по терминологии б договорились и все на свои места стало б.
Класификатором - обозвите справочник, которому хватает int ID, string Name.
Справочником - которому нужно еще полей дополнительно.
В обоих случаях первичным ключем может быть Int. Если справочнику необходимо количество записей больше размерности Int, используем Long.
Наличие, окромя первичного ключа, какого-то возможно уникального поля аля ИПН, еще не означает удобства его использования в качестве первичного ключа. Индексы, поиски и протчая лабуда для инта работает быстрее чем для строк.
Кроме того, если уж так прет от ИПН, то часто он неизвестен, а работать надо... если его вместо превичного ключа использовать, так только и делов будет кричать: за справкой беги, не продам тебе валидол без ИПН.

PS. таббед - всего лишь одна из возможных реализацый интерфейса и к этим 3-м пунктам об организации таблиц в БД имеет отношение, как и любой другой интерфейс - параллельное.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542093
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данные в таблицы-классификаторы обычно добавляются на этапе разработки или конфигурирования системы перед её эксплуатацией. В процессе эксплуатации данные в таблицах-классификаторах обычно меняются редко. Для меня это основное отличие классификаторов от неклассификаторов.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542138
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парни, ещё раз:

1. идентификатор записи, первичный ключ - это не уникальный код классификатора;
2. идентификатор записи может генерироваться не просто инкрементом и размерности Int-а может не хватить.

Да он будет long-ом, но не int-ом.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542162
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IAppleskyANAпропущено...
Я бы простые справочники классификаторами не называл. Ну не укладывается у меня классификация дефектов нефтепровода в два поля: int ID, string Name

С тремя пунктами от Алексей К сотгласен полностью. Вы по терминологии б договорились и все на свои места стало б.
Класификатором - обозвите справочник, которому хватает int ID, string Name.
Справочником - которому нужно еще полей дополнительно.
В обоих случаях первичным ключем может быть Int. Если справочнику необходимо количество записей больше размерности Int, используем Long.


А вот например "заявки принятые Ивановым за сегодня" - тоже ID и Name, тоже нужны для "комбика" - тоже чтоли справочник?
По мне так, этой границы нет вообще, одна и таже таблица иногда может выступать в роли справочника.
Иногда справочник это вообще не таблица, а выборка, прчем выборка значений которых нет в таблицах.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542164
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, обратимся к Вашей любимой википедии:Виды классификаторовКлассификаторы разрабатываются как на уровне отдельных предприятий (организаций), так и на уровне государств. Существуют следующие уровни классификаторов:
- международные — стандартные классификаторы, используемые по всему миру...ISO коды валют, IATA коды аэропортов, городов и регионов - это ни фига не числовые коды. Но идентификатор записи в вашей конкретной базе, в справочнике валют вполне может быть числовым, потому как идентификатор - это не код классификатора
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542175
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя с валютой не удачный пример, т.к. стандартом предполагается и буквенный и цифровой коды.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542205
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей К, обратимся к Вашей любимой википедии:Виды классификаторовКлассификаторы разрабатываются как на уровне отдельных предприятий (организаций), так и на уровне государств. Существуют следующие уровни классификаторов:
- международные — стандартные классификаторы, используемые по всему миру...ISO коды валют, IATA коды аэропортов, городов и регионов - это ни фига не числовые коды. Но идентификатор записи в вашей конкретной базе, в справочнике валют вполне может быть числовым, потому как идентификатор - это не код классификатора Есть первичный ключ, есть остальные поля. Да, в классификаторе могут присутствовать кроме имени короткие обозначения, ну и что? Возьмёт ICAO-классификатор аэропортов:
Код: c#
1.
2.
3.
4.
5.
6.
var novosibirskAirport = new Icao
{
    ID = 123, // наш внутренний код, потому что по char(4) первичный ключ делать неразумно
    IcaoID = "UNNT", // ICAO имя аэропорта
    Name = "Толмачёво" // "Человеческое" имя аэропорта
}
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542220
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA1. идентификатор записи, первичный ключ - это не уникальный код классификатора;И тем не менее, в случае с комбобоксом, скорее всего, в качестве SelectedValue будет использоваться именно это поле. Поэтому речь именно про него.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542222
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA2. идентификатор записи может генерироваться не просто инкрементом и размерности Int-а может не хватить.

Да он будет long-ом, но не int-ом. С этим я не спорю, просто мне это не нравится, не более того.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542282
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANA2. идентификатор записи может генерироваться не просто инкрементом и размерности Int-а может не хватить.

Да он будет long-ом, но не int-ом. С этим я не спорю, просто мне это не нравится, не более того.А мне показалось, что спорите:Алексей КArm79Что касается int - то ММВБ (РТС) уже давно перешло на long. Номера заявок превысили размерность типа.Но это же не для классификаторов.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542297
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
С этим я не спорю, просто мне это не нравится, не более того.А мне показалось, что спорите:Алексей Кпропущено...
Но это же не для классификаторов.Заявка не является классификатором, о чём я и сообщил.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542310
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
А мне показалось, что спорите:пропущено...
Заявка не является классификатором, о чём я и сообщил.И что? Из этого же не следует, что идентификатор записи или код классификатора не может превысить размерность int-а.

Ещё как могут. Правда это сразу после выбора метода классификации или метода генерации идентификатора станет ясно
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542316
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, к чему спорить то?

Выделять отдельную сущность исключительно под классификаторы - это спорное решение. И тем более затачивать их только под int. Если речь идет именно об ускорении работы и т.п., проще сниппет сделать, и, при необходимости, менять тип свойства ID. Вы же заранее себя ограничиваете, закладывая int в основание иерархии классов.

Сейчас мы делаем проект один, так там общие справочники/классификаторы для всех ИТ-систем организации (Master Data Management). Ключи там разнообразные, в т.ч. и строки.

К тому же, есть общероссийские классификаторы, которые юзаются as is. Например, Коды ТН ВЭД , где ключом являются римские цифры
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542323
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Заявка не является классификатором, о чём я и сообщил.И что? Из этого же не следует, что идентификатор записи или код классификатора не может превысить размерность int-а.

Ещё как могут. Правда это сразу после выбора метода классификации или метода генерации идентификатора станет ясно Ну и замечательно. Я стараюсь избегать таких способов формирования значений первичного ключа, поэтому в большинстве случаев меня устраивает структура данных { int ID; string Name; } , под которую я заготовил специальный класс и часто его использую. Всё сходится.

Думаю, все всё поняли, тему можно закрывать. :-)
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542332
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, да ещё на второй странице все всё поняли: 15481891
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542338
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Алексей К, к чему спорить то?Я и не спорю. :-)

Это окружающие меня пытаются убедить в моей неправоте, вероятно, они знают мои задачи лучше меня. :-)

Arm79Выделять отдельную сущность исключительно под классификаторы - это спорное решение. И тем более затачивать их только под int. Если речь идет именно об ускорении работы и т.п., проще сниппет сделать, и, при необходимости, менять тип свойства ID. Вы же заранее себя ограничиваете, закладывая int в основание иерархии классов.Если вдруг произойдёт чудо и придётся сменить тип первичного ключа - так и быть, вместо стандартного класса будет использован специальный. Такую замену можно будет произвести по необходимости.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542342
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, Ваша проблема в том, что Вы на основе конкретно своих задач и инфраструктуры делаете обощающие выводы:Алексей КНе думаю, что такая предметная область существует.Это не правильно.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542353
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей К, да ещё на второй странице все всё поняли : 15481891 Я не понял, Вы решили меня осуждать от имени всех присутствующих? Это занятие с сомнительной перспективой.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542363
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAАлексей К, да ещё на второй странице все всё поняли : 15481891 Я не понял, Вы решили меня осуждать от имени всех присутствующих? Это занятие с сомнительной перспективой.Вас часто осуждают?

P.S.: по ссылке нет осуждения, там констатация того, что спор ни о чём и его вообще нет. И то, что Вы дальше собственных проектов не видите. И это нормально.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542384
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Я не понял, Вы решили меня осуждать от имени всех присутствующих? Это занятие с сомнительной перспективой.Вас часто осуждают? "Вы хотите поговорить об этом?" (ц)
skyANAP.S.: по ссылке нет осуждения, там констатация того, что спор ни о чём и его вообще нет.Так и есть. Я не ставлю для себя задачу кого-то в чём-то убеждать.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542386
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скучно. Хочется драйва и честного вброса...

Кстати, логику в хп делают только те, кто не осилил нормальные средства разработки и ORM. Алексей подтвердит.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542394
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Вас часто осуждают? "Вы хотите поговорить об этом?" (ц)
skyANAP.S.: по ссылке нет осуждения, там констатация того, что спор ни о чём и его вообще нет.Так и есть. Я не ставлю для себя задачу кого-то в чём-то убеждать.Это плюс.

Было бы совсем замечательно, если бы Вы научились смотреть на проблему шире, а не сугубо через призму свого проекта.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542397
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСкучно. Хочется драйва и честного вброса...Да. Но skyANA, к сожалению, этого не понимает и слишком серьёзно относится к происходящему. :-)
МСУКстати, логику в хп делают только те, кто не осилил нормальные средства разработки и ORM. Алексей подтвердит.Надоело... (зевает)
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542401
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, мне просто смайлики иногда влом ставить
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542404
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей К, мне просто смайлики иногда влом ставить Надеюсь. :-)
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542408
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAАлексей К, мне просто смайлики иногда влом ставить Надеюсь. :-)Я Вас уверяю.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542409
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Надеюсь. :-)Я Вас уверяю.ОК. :-)
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542410
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСкучно. Хочется драйва и честного вброса...

Кстати, логику в хп делают только те, кто не осилил нормальные средства разработки и ORM. Алексей подтвердит.Плевать на логику в хп, плевать на ORM.

Я использую MongoDB
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542411
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Я Вас уверяю.ОК. :-)Вот и славно
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542422
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAБыло бы совсем замечательно, если бы Вы научились смотреть на проблему шире, а не сугубо через призму свого проекта.Кстати, давно для себя решил ограничивать "широту взгляда" при решении задач. От "широкого охвата" часто больше вреда чем пользы.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542541
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЯ использую MongoDB
Монго упоротое гумно. Даешь сиквел
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542572
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЯ использую MongoDB

Кстати, раз уж такое дело... Вы скорость тестировали? По сравнению с обычными реляционными СУБД?
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38542869
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79skyANAЯ использую MongoDB

Кстати, раз уж такое дело... Вы скорость тестировали? По сравнению с обычными реляционными СУБД?Да, и продолжаем в предверии релиза.

На продакшн у нас сейчас все данные лежат в SQL Server, но для повышения масштабируемости часть их перенесли в MongoDB.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38543058
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваш спор ни о чем. Все обсуждаемые реализации никакого отношения к теме не имеют.
Должен быть интерфейс для ключа, тогда id и содержимое модели могут быть любыми.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38543106
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так вот нах!
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38543169
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaВсе обсуждаемые реализации никакого отношения к теме не имеют.Вот так вброс

Тема называется: "Шаблон класса для представления справочников". Так что не надо ля-ля.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38543177
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaДолжен быть интерфейс для ключа, тогда id и содержимое модели могут быть любыми.
Проиллюстрируйте примером, плиз.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38543186
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaВаш спор ни о чем. Все обсуждаемые реализации никакого отношения к теме не имеют.
Должен быть интерфейс для ключа, тогда id и содержимое модели могут быть любыми.
Ты чего там куришь, бабуин?
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38543230
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где реакции на то, что MongoDB УГ? Или все согласны с этим доводом?
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38543312
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУSeVaВаш спор ни о чем. Все обсуждаемые реализации никакого отношения к теме не имеют.
Должен быть интерфейс для ключа, тогда id и содержимое модели могут быть любыми.
Ты чего там куришь, бабуин?

То, что я курю вредно дошкольникам, которые не доросли до обобщенных классов. Иди в класс учиться
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38543347
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Нет! :-)О, давайте говнокодом справочниками меряться

Мой вариант:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
[Serializable]
public class Reference : Record, IConvertibleTo<ReferenceCondition>
{
    protected string code;
    protected string name;
    private Reference parent;
    private ReferenceType type;

    public Reference()
        : this(ReferenceType.Unknown)
    {
    }

    public Reference(ReferenceType type)
    {
        this.type = type;
    }

    [XmlAttribute, DefaultValue(null)]
    public virtual string Code
    {
        get { return code; }
        set { code = value; }
    }

    [XmlAttribute, DefaultValue(null)]
    public virtual string Name
    {
        get { return name; }
        set { name = value; }
    }

    [XmlElement]
    public virtual Reference Parent
    {
        get { return parent; }
        set { parent = value; }
    }

    [XmlIgnore, DefaultValue(ReferenceType.Unknown)]
    public virtual ReferenceType Type
    {
        get { return type; }
        set { type = value; }
    }

    public override void Clear()
    {
        base.Clear();

        code = null;
        name = null;
        parent = null;
    }

    public override bool IsEmpty()
    {
        return base.IsEmpty()
            && String.IsNullOrEmpty(code)
            && String.IsNullOrEmpty(name);
    }

    protected override void ToEmpty()
    {
        base.ToEmpty();

        parent = new Reference();
    }

    public override string ToString()
    {
        if (!String.IsNullOrEmpty(name))
            return name;
        if (!String.IsNullOrEmpty(code))
            return code;
        return String.Empty;
    }

    public static bool CodeIsEmpty(Reference item)
    {
        return (item == null || String.IsNullOrEmpty(item.Code));
    }

    public static bool NameIsEmpty(Reference item)
    {
        return (item == null || String.IsNullOrEmpty(item.Name));
    }

    // Реализация интерфейса IConvertibleTo<ReferenceCondition>
    public virtual void CopyTo(ReferenceCondition item)
    {
        base.CopyTo(item);

        item.Code = code;
        item.Name = name;
        item.Parent = ConvertTo<ReferenceCondition>(parent);
        item.Type = type;
    }
}



SkyANA, ля-ля с тормозами и прочей шелухой у тебя с ConvertTo на ровном месте.
Обобщения предназначены именно для того, чтобы не было подобного говнокода
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38543369
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaТо, что я курю вредно дошкольникам, которые не доросли до обобщенных классов. Иди в класс учиться
То, что ты куришь, вредно даже коровам на лугу. От едкого дыма у них распирает вымя и выпячиваются глаза. Завязывай с наркотиками.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38543387
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaSkyANA, ля-ля с тормозами и прочей шелухой у тебя с ConvertTo на ровном месте.
Обобщения предназначены именно для того, чтобы не было подобного говнокодаСомневаюсь что ты вообще понял для чего ConvertTo

P.S.: коду сто лет в обед, под .Net 2.0 ещё писался. Любая конструктивная критика приветствуется. Хотя я сильно сомневаюсь, что он мне когда-то ещё понадобиться.
...
Рейтинг: 0 / 0
Шаблон класса для представления справочников
    #38543450
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУГде реакции на...Игнор - это нормальная реакция на толстый троллинг
...
Рейтинг: 0 / 0
127 сообщений из 127, показаны все 6 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Шаблон класса для представления справочников
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]