powered by simpleCommunicator - 2.0.47     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / подскажите хорошую практику наименования связанных таблиц
25 сообщений из 132, страница 4 из 6
подскажите хорошую практику наименования связанных таблиц
    #40000817
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimkas
В целом к трёхбуквенным сокращениям привыкаешь очень сильно,
они быстро начинают восприниматься как просто термин - все вот эти PRC, PRS, SPR, MNT и т.д. - они ж как родные уже :))


Если человека заставлять ходить раком, он рано или поздно привыкнет, и такой способ для него будет "как родной".

Люди сами создают себе проблемы, привыкают к этому и навязывают своё чувство приобретённого комфорта другим.

Имел "удовольствие" работать с SAP R/3, с ограничением 4-5 символов в названии. Лютый треш, особо доставляли таблички с названием типа ANAL.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40000825
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimkas
Валерий Юринский

Раньше давали короткие имена для экономии памяти.
Теперь это неактуально.

1. Пример хотелось привести наиболее короткий, для наглядности,
2. Конкретно эта таблица по-русски называется "Медицинская организация" и везде по документации сокращается до "MO",
3. Система стартовала на Oracle 8i :)

В целом к трёхбуквенным сокращениям привыкаешь очень сильно,
они быстро начинают восприниматься как просто термин - все вот эти PRC, PRS, SPR, MNT и т.д. - они ж как родные уже :))

На 8i (1999 г.) ресурсов уже было намного больше, чем на Oracle v4, v5, где экономия была неизбежна :-)

И вас с "трехбуквенностью", прямо, как у дворника из "12 стульев" :-)
"12 стульев" by Ильф и ПетровВ пятницу 15 апреля 1927 года Ипполит Матвеевич, как обычно, проснулся в половине восьмого
и сразу же просунул нос в старомодное пенсне с золотой дужкой. Очков он не носил.
Однажды, решив, что носить пенсне негигиенично, Ипполит Матвеевич направился к оптику
и купил очки без оправы, с позолоченными оглоблями. Очки с первого раза ему понравились,
но жена (это было незадолго до ее смерти) нашла, что в очках он вылитый Милюков, и он отдал очки дворнику.
Дворник, хотя и не был близорук, к очкам привык и носил их с удовольствием.

:-)
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40000837
istrebitel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt

Имел "удовольствие" работать с SAP R/3, с ограничением 4-5 символов в названии. Лютый треш, особо доставляли таблички с названием типа ANAL.

Бооооль
Код: plsql
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.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
CREATE TABLE sl_load_out_mseg
    (bukrs                          VARCHAR2(4 BYTE),
    mblnr                          VARCHAR2(10 BYTE),
    mjahr                          NUMBER(4,0),
    zeile                          NUMBER(4,0),
    matnr                          VARCHAR2(18 BYTE),
    werks                          VARCHAR2(4 BYTE),
    lgort                          VARCHAR2(4 BYTE),
    charg                          VARCHAR2(10 BYTE),
    lifnr                          VARCHAR2(10 BYTE),
    waers                          VARCHAR2(5 BYTE),
    dmbtr                          NUMBER(13,2),
    bwart                          VARCHAR2(3 BYTE),
    menge                          NUMBER(13,3),
    meins                          VARCHAR2(3 BYTE),
    ebeln                          VARCHAR2(10 BYTE),
    ebelp                          NUMBER(5,0),
    sjahr                          NUMBER(4,0),
    smbln                          VARCHAR2(10 BYTE),
    smblp                          NUMBER(4,0),
    bklas                          VARCHAR2(4 BYTE),
    vmtr                           VARCHAR2(5 BYTE),
    vid_d                          VARCHAR2(1 BYTE),
    obj_num                        NUMBER(8,0),
    mwskz                          VARCHAR2(2 BYTE),
    bwtar                          VARCHAR2(10 BYTE),
    price                          NUMBER(13,2),
    manager                        VARCHAR2(5 BYTE),
    depcod                         VARCHAR2(6 BYTE),
    waers_buh                      VARCHAR2(5 BYTE),
    dmbtr_buh                      NUMBER(13,2),
    price_buh                      NUMBER(13,2),
    vopr                           VARCHAR2(4 BYTE),
    prz_hran                       VARCHAR2(1 BYTE),
    shkzg                          VARCHAR2(1 BYTE),
    error                          VARCHAR2(1 BYTE),
    deliv_st                       VARCHAR2(3 BYTE),
    werks_in                       VARCHAR2(4 BYTE),
    lgort_in                       VARCHAR2(4 BYTE),
    charg_in                       VARCHAR2(10 BYTE),
    bwart_in                       VARCHAR2(3 BYTE),
    xauto                          VARCHAR2(1 BYTE),
    line_id                        NUMBER(6,0),
    sgtxt                          VARCHAR2(50 BYTE),
    bklas_in                       VARCHAR2(4 BYTE),
    vid_d_in                       VARCHAR2(1 BYTE),
    cena                           NUMBER(13,2),
    lbkum                          NUMBER(13,3),
    salk3                          NUMBER(13,2),
    posnv                          NUMBER(6,0),
    wempf                          VARCHAR2(12 BYTE),
    kunnr                          VARCHAR2(10 BYTE),
    xblnr                          VARCHAR2(16 BYTE),
    vgbel                          VARCHAR2(10 BYTE),
    vgpos                          NUMBER(6,0),
    parent_id                      NUMBER(6,0),
    spez_od                        VARCHAR2(1 BYTE),
    lgort_ox                       VARCHAR2(4 BYTE),
    bstkd                          VARCHAR2(35 BYTE),
    mol                            VARCHAR2(3 BYTE),
    mol_name                       VARCHAR2(200 BYTE),
    umwrk                          VARCHAR2(4 BYTE),
    mol_in                         VARCHAR2(4 BYTE),
    price_rl                       NUMBER(13,2),
    error_iseg                     VARCHAR2(1 BYTE),
    iblnr                          VARCHAR2(10 BYTE),
    gjahr                          NUMBER(4,0),
    zeili                          NUMBER(3,0),
    xblni                          VARCHAR2(16 BYTE),
    invnu                          VARCHAR2(16 BYTE),
    zmcha_str_p                    VARCHAR2(30 BYTE),
    zmcha_vl                       VARCHAR2(30 BYTE),
    kunnr1                         VARCHAR2(10 BYTE),
    wempf1                         VARCHAR2(12 BYTE),
    bwtar_in                       VARCHAR2(10 BYTE),
    menge_alt                      NUMBER(13,3),
    meins_alt                      VARCHAR2(3 BYTE),
    empst_lgort                    VARCHAR2(25 BYTE),
    knote_out                      VARCHAR2(10 BYTE),
    z_charact                      VARCHAR2(264 BYTE),
    parnr                          NUMBER(10,0),
    znpo_td                        VARCHAR2(30 BYTE),
    posid                          VARCHAR2(24 BYTE),
    docnum                         VARCHAR2(10 BYTE),
    posnum                         NUMBER(6,0),
    country                        VARCHAR2(3 BYTE),
    npo_td                         VARCHAR2(25 BYTE),
    ztxt_prim                      VARCHAR2(264 BYTE),
    zmcha_prmtr                    VARCHAR2(18 BYTE),
    zmcha_prcharg                  VARCHAR2(10 BYTE),
    bzirk                          VARCHAR2(6 BYTE),
    netpr_zi                       NUMBER(11,2),
    waers_zi                       VARCHAR2(5 BYTE),
    mfrgr                          VARCHAR2(8 BYTE),
    brgew                          NUMBER(13,3),
    weight_shtuk_length            VARCHAR2(60 BYTE),
    ficha                          VARCHAR2(10 BYTE),
    whcha                          VARCHAR2(10 BYTE),
    id_query                       VARCHAR2(10 CHAR),
    posid_out                      VARCHAR2(24 BYTE))
  SEGMENT CREATION IMMEDIATE
  NOPARALLEL
  LOGGING
  MONITORING
/


-- Comments for SL_LOAD_OUT_MSEG

COMMENT ON COLUMN sl_load_out_mseg.bklas IS 'Класс оценки'
/
COMMENT ON COLUMN sl_load_out_mseg.bklas_in IS 'Класс оценки'
/
COMMENT ON COLUMN sl_load_out_mseg.brgew IS 'Вес брутто'
/
COMMENT ON COLUMN sl_load_out_mseg.bstkd IS 'Номер заказа клиента на поставку'
/
COMMENT ON COLUMN sl_load_out_mseg.bukrs IS 'Балансовая единица'
/
COMMENT ON COLUMN sl_load_out_mseg.bwart IS 'Вид движения материала(Управление запсами)'
/
COMMENT ON COLUMN sl_load_out_mseg.bwart_in IS 'Вид движения материала(Управление запсами)'
/
COMMENT ON COLUMN sl_load_out_mseg.bwtar IS 'Вид оценки'
/
COMMENT ON COLUMN sl_load_out_mseg.bwtar_in IS 'Вид оценки'
/
COMMENT ON COLUMN sl_load_out_mseg.bzirk IS 'Группа месторождений'
/
COMMENT ON COLUMN sl_load_out_mseg.cena IS 'Стоимость общего оцененного запаса до проводки'
/
COMMENT ON COLUMN sl_load_out_mseg.charg IS 'Номер партии'
/
COMMENT ON COLUMN sl_load_out_mseg.charg_in IS 'Номер партии'
/
COMMENT ON COLUMN sl_load_out_mseg.country IS 'Код страны'
/
COMMENT ON COLUMN sl_load_out_mseg.deliv_st IS 'Трехзначное текстовое поле для IDOC'
/
COMMENT ON COLUMN sl_load_out_mseg.depcod IS 'Код подразделения'
/
COMMENT ON COLUMN sl_load_out_mseg.dmbtr IS 'Сумма во внутренней валюте'
/
COMMENT ON COLUMN sl_load_out_mseg.dmbtr_buh IS 'Сумма во внетренней валюте'
/
COMMENT ON COLUMN sl_load_out_mseg.docnum IS 'Следующий документ'
/
COMMENT ON COLUMN sl_load_out_mseg.ebeln IS 'Номер заказа на поставку'
/
COMMENT ON COLUMN sl_load_out_mseg.ebelp IS 'Номер позиции документа закупки'
/
COMMENT ON COLUMN sl_load_out_mseg.empst_lgort IS 'Пункт приемки'
/
COMMENT ON COLUMN sl_load_out_mseg.error IS 'Поле текста (1 знак)'
/
COMMENT ON COLUMN sl_load_out_mseg.error_iseg IS 'Поле текста (1 знак)'
/
COMMENT ON COLUMN sl_load_out_mseg.ficha IS 'Первичная партия поступления'
/
COMMENT ON COLUMN sl_load_out_mseg.gjahr IS 'Финансовый год'
/
COMMENT ON COLUMN sl_load_out_mseg.iblnr IS 'Документ инвентаризации'
/
COMMENT ON COLUMN sl_load_out_mseg.id_query IS 'Идентификатор запроса функции'
/
COMMENT ON COLUMN sl_load_out_mseg.invnu IS 'Номер инвентаризации'
/
COMMENT ON COLUMN sl_load_out_mseg.knote_out IS 'Транспортный узел'
/
COMMENT ON COLUMN sl_load_out_mseg.kunnr IS 'Заказчик'
/
COMMENT ON COLUMN sl_load_out_mseg.kunnr1 IS 'Номер дебетора'
/
COMMENT ON COLUMN sl_load_out_mseg.lbkum IS 'Общий объем оцененного запаса'
/
COMMENT ON COLUMN sl_load_out_mseg.lgort IS 'Склад'
/
COMMENT ON COLUMN sl_load_out_mseg.lgort_in IS 'Склад'
/
COMMENT ON COLUMN sl_load_out_mseg.lgort_ox IS 'Склад'
/
COMMENT ON COLUMN sl_load_out_mseg.lifnr IS 'Номер счета поставщика'
/
COMMENT ON COLUMN sl_load_out_mseg.line_id IS 'Однозначный идентификатор строки документа'
/
COMMENT ON COLUMN sl_load_out_mseg.manager IS 'Менеджер'
/
COMMENT ON COLUMN sl_load_out_mseg.matnr IS 'Номер материала'
/
COMMENT ON COLUMN sl_load_out_mseg.mblnr IS 'Номер документа материала'
/
COMMENT ON COLUMN sl_load_out_mseg.meins IS 'Базисная единица измерения'
/
COMMENT ON COLUMN sl_load_out_mseg.meins_alt IS 'Единица измерения ввода'
/
COMMENT ON COLUMN sl_load_out_mseg.menge IS 'Количество'
/
COMMENT ON COLUMN sl_load_out_mseg.menge_alt IS 'Количество в ЕИ ввода'
/
COMMENT ON COLUMN sl_load_out_mseg.mfrgr IS 'Группа фрахта материала'
/
COMMENT ON COLUMN sl_load_out_mseg.mjahr IS 'Год документа материала'
/
COMMENT ON COLUMN sl_load_out_mseg.mol IS 'Группа сбыта'
/
COMMENT ON COLUMN sl_load_out_mseg.mol_in IS 'Склад'
/
COMMENT ON COLUMN sl_load_out_mseg.mol_name IS 'Поле текста, длина 200'
/
COMMENT ON COLUMN sl_load_out_mseg.mwskz IS 'Код налога на добавленную стоимость'
/
COMMENT ON COLUMN sl_load_out_mseg.netpr_zi IS 'Цена нетто'
/
COMMENT ON COLUMN sl_load_out_mseg.npo_td IS 'ГТД(ВТД)'
/
COMMENT ON COLUMN sl_load_out_mseg.obj_num IS 'Объект капстроя (на базе СПП-элемента)'
/
COMMENT ON COLUMN sl_load_out_mseg.parent_id IS 'Однозначный идентификатор строки документа'
/
COMMENT ON COLUMN sl_load_out_mseg.parnr IS 'Номер контактного лица'
/
COMMENT ON COLUMN sl_load_out_mseg.posid IS 'Элемент структурного плана проекта (СПП-элемент)'
/
COMMENT ON COLUMN sl_load_out_mseg.posid_out IS 'Элемент структурного плана проекта (СПП-элемент) (Откуда)'
/
COMMENT ON COLUMN sl_load_out_mseg.posnum IS 'Позиция следующего документа'
/
COMMENT ON COLUMN sl_load_out_mseg.posnv IS 'Предыдущая позиция документа сбыта'
/
COMMENT ON COLUMN sl_load_out_mseg.price IS 'Сумма во внутренний валюте'
/
COMMENT ON COLUMN sl_load_out_mseg.price_buh IS 'Сумма во внутренней валюте'
/
COMMENT ON COLUMN sl_load_out_mseg.price_rl IS 'Сумма во внутренней валюте'
/
COMMENT ON COLUMN sl_load_out_mseg.prz_hran IS 'Поле текста (1 знак)'
/
COMMENT ON COLUMN sl_load_out_mseg.salk3 IS 'Стоимость общего оцененного запаса до проводки'
/
COMMENT ON COLUMN sl_load_out_mseg.sgtxt IS 'Текст позиции'
/
COMMENT ON COLUMN sl_load_out_mseg.shkzg IS 'Индекатор дебета/кредита'
/
COMMENT ON COLUMN sl_load_out_mseg.sjahr IS 'Год документа материала'
/
COMMENT ON COLUMN sl_load_out_mseg.smbln IS 'Номер документа материала'
/
COMMENT ON COLUMN sl_load_out_mseg.smblp IS 'Позиция документа материала'
/
COMMENT ON COLUMN sl_load_out_mseg.spez_od IS 'Индикатор одной позиции'
/
COMMENT ON COLUMN sl_load_out_mseg.umwrk IS 'Завод-получатель/завод поставщик'
/
COMMENT ON COLUMN sl_load_out_mseg.vgbel IS 'Номер документа-образца'
/
COMMENT ON COLUMN sl_load_out_mseg.vgpos IS 'Номер образца позиции сделки'
/
COMMENT ON COLUMN sl_load_out_mseg.vid_d IS 'Код вида деятельности (хран)'
/
COMMENT ON COLUMN sl_load_out_mseg.vid_d_in IS 'Код вида деятельности (хран)'
/
COMMENT ON COLUMN sl_load_out_mseg.vmtr IS 'Вид материала в БИТ'
/
COMMENT ON COLUMN sl_load_out_mseg.vopr IS 'Код операции для интерфейса SAP->БИТ'
/
COMMENT ON COLUMN sl_load_out_mseg.waers IS 'Код валюты'
/
COMMENT ON COLUMN sl_load_out_mseg.waers_buh IS 'Код валюты'
/
COMMENT ON COLUMN sl_load_out_mseg.waers_zi IS 'Код валюты'
/
COMMENT ON COLUMN sl_load_out_mseg.weight_shtuk_length IS 'WEIGHT_SHTUK_LENGTH'
/
COMMENT ON COLUMN sl_load_out_mseg.wempf IS 'Получатель материала'
/
COMMENT ON COLUMN sl_load_out_mseg.wempf1 IS 'Получатель материала'
/
COMMENT ON COLUMN sl_load_out_mseg.werks IS 'Завод'
/
COMMENT ON COLUMN sl_load_out_mseg.werks_in IS 'Завод'
/
COMMENT ON COLUMN sl_load_out_mseg.whcha IS 'Партия ПС'
/
COMMENT ON COLUMN sl_load_out_mseg.xauto IS 'Индикатор: позиция создана автоматически'
/
COMMENT ON COLUMN sl_load_out_mseg.xblni IS 'Ссылочный номер инвентаризации'
/
COMMENT ON COLUMN sl_load_out_mseg.xblnr IS 'Ссылочный номер документа'
/
COMMENT ON COLUMN sl_load_out_mseg.z_charact IS 'Сертификаты'
/
COMMENT ON COLUMN sl_load_out_mseg.zeile IS 'Позиция документа материала'
/
COMMENT ON COLUMN sl_load_out_mseg.zeili IS 'Номер строки'
/
COMMENT ON COLUMN sl_load_out_mseg.zmcha_prcharg IS 'Исходная партия'
/
COMMENT ON COLUMN sl_load_out_mseg.zmcha_prmtr IS 'Исходный МТР'
/
COMMENT ON COLUMN sl_load_out_mseg.zmcha_str_p IS 'Short text'
/
COMMENT ON COLUMN sl_load_out_mseg.zmcha_vl IS 'Short text'
/
COMMENT ON COLUMN sl_load_out_mseg.znpo_td IS 'Значение признака'
/
COMMENT ON COLUMN sl_load_out_mseg.ztxt_prim IS 'Текст продажы материала'
/

...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40001002
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
istrebitel
hVostt

Имел "удовольствие" работать с SAP R/3, с ограничением 4-5 символов в названии. Лютый треш, особо доставляли таблички с названием типа ANAL.

Бооооль
Код: plsql
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.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
CREATE TABLE sl_load_out_mseg
    (bukrs                          VARCHAR2(4 BYTE),
    mblnr                          VARCHAR2(10 BYTE),
    mjahr                          NUMBER(4,0),
    zeile                          NUMBER(4,0),
    matnr                          VARCHAR2(18 BYTE),
    werks                          VARCHAR2(4 BYTE),
    lgort                          VARCHAR2(4 BYTE),
    charg                          VARCHAR2(10 BYTE),
    lifnr                          VARCHAR2(10 BYTE),
    waers                          VARCHAR2(5 BYTE),
    dmbtr                          NUMBER(13,2),
    bwart                          VARCHAR2(3 BYTE),
    menge                          NUMBER(13,3),
    meins                          VARCHAR2(3 BYTE),
    ebeln                          VARCHAR2(10 BYTE),
    ebelp                          NUMBER(5,0),
    sjahr                          NUMBER(4,0),
    smbln                          VARCHAR2(10 BYTE),
    smblp                          NUMBER(4,0),
    bklas                          VARCHAR2(4 BYTE),
    vmtr                           VARCHAR2(5 BYTE),
    vid_d                          VARCHAR2(1 BYTE),
    obj_num                        NUMBER(8,0),
    mwskz                          VARCHAR2(2 BYTE),
    bwtar                          VARCHAR2(10 BYTE),
    price                          NUMBER(13,2),
    manager                        VARCHAR2(5 BYTE),
    depcod                         VARCHAR2(6 BYTE),
    waers_buh                      VARCHAR2(5 BYTE),
    dmbtr_buh                      NUMBER(13,2),
    price_buh                      NUMBER(13,2),
    vopr                           VARCHAR2(4 BYTE),
    prz_hran                       VARCHAR2(1 BYTE),
    shkzg                          VARCHAR2(1 BYTE),
    error                          VARCHAR2(1 BYTE),
    deliv_st                       VARCHAR2(3 BYTE),
    werks_in                       VARCHAR2(4 BYTE),
    lgort_in                       VARCHAR2(4 BYTE),
    charg_in                       VARCHAR2(10 BYTE),
    bwart_in                       VARCHAR2(3 BYTE),
    xauto                          VARCHAR2(1 BYTE),
    line_id                        NUMBER(6,0),
    sgtxt                          VARCHAR2(50 BYTE),
    bklas_in                       VARCHAR2(4 BYTE),
    vid_d_in                       VARCHAR2(1 BYTE),
    cena                           NUMBER(13,2),
    lbkum                          NUMBER(13,3),
    salk3                          NUMBER(13,2),
    posnv                          NUMBER(6,0),
    wempf                          VARCHAR2(12 BYTE),
    kunnr                          VARCHAR2(10 BYTE),
    xblnr                          VARCHAR2(16 BYTE),
    vgbel                          VARCHAR2(10 BYTE),
    vgpos                          NUMBER(6,0),
    parent_id                      NUMBER(6,0),
    spez_od                        VARCHAR2(1 BYTE),
    lgort_ox                       VARCHAR2(4 BYTE),
    bstkd                          VARCHAR2(35 BYTE),
    mol                            VARCHAR2(3 BYTE),
    mol_name                       VARCHAR2(200 BYTE),
    umwrk                          VARCHAR2(4 BYTE),
    mol_in                         VARCHAR2(4 BYTE),
    price_rl                       NUMBER(13,2),
    error_iseg                     VARCHAR2(1 BYTE),
    iblnr                          VARCHAR2(10 BYTE),
    gjahr                          NUMBER(4,0),
    zeili                          NUMBER(3,0),
    xblni                          VARCHAR2(16 BYTE),
    invnu                          VARCHAR2(16 BYTE),
    zmcha_str_p                    VARCHAR2(30 BYTE),
    zmcha_vl                       VARCHAR2(30 BYTE),
    kunnr1                         VARCHAR2(10 BYTE),
    wempf1                         VARCHAR2(12 BYTE),
    bwtar_in                       VARCHAR2(10 BYTE),
    menge_alt                      NUMBER(13,3),
    meins_alt                      VARCHAR2(3 BYTE),
    empst_lgort                    VARCHAR2(25 BYTE),
    knote_out                      VARCHAR2(10 BYTE),
    z_charact                      VARCHAR2(264 BYTE),
    parnr                          NUMBER(10,0),
    znpo_td                        VARCHAR2(30 BYTE),
    posid                          VARCHAR2(24 BYTE),
    docnum                         VARCHAR2(10 BYTE),
    posnum                         NUMBER(6,0),
    country                        VARCHAR2(3 BYTE),
    npo_td                         VARCHAR2(25 BYTE),
    ztxt_prim                      VARCHAR2(264 BYTE),
    zmcha_prmtr                    VARCHAR2(18 BYTE),
    zmcha_prcharg                  VARCHAR2(10 BYTE),
    bzirk                          VARCHAR2(6 BYTE),
    netpr_zi                       NUMBER(11,2),
    waers_zi                       VARCHAR2(5 BYTE),
    mfrgr                          VARCHAR2(8 BYTE),
    brgew                          NUMBER(13,3),
    weight_shtuk_length            VARCHAR2(60 BYTE),
    ficha                          VARCHAR2(10 BYTE),
    whcha                          VARCHAR2(10 BYTE),
    id_query                       VARCHAR2(10 CHAR),
    posid_out                      VARCHAR2(24 BYTE))
  SEGMENT CREATION IMMEDIATE
  NOPARALLEL
  LOGGING
  MONITORING
/


-- Comments for SL_LOAD_OUT_MSEG

COMMENT ON COLUMN sl_load_out_mseg.bklas IS 'Класс оценки'
/
COMMENT ON COLUMN sl_load_out_mseg.bklas_in IS 'Класс оценки'
/
COMMENT ON COLUMN sl_load_out_mseg.brgew IS 'Вес брутто'
/
COMMENT ON COLUMN sl_load_out_mseg.bstkd IS 'Номер заказа клиента на поставку'
/
COMMENT ON COLUMN sl_load_out_mseg.bukrs IS 'Балансовая единица'
/
COMMENT ON COLUMN sl_load_out_mseg.bwart IS 'Вид движения материала(Управление запсами)'
/
COMMENT ON COLUMN sl_load_out_mseg.bwart_in IS 'Вид движения материала(Управление запсами)'
/
COMMENT ON COLUMN sl_load_out_mseg.bwtar IS 'Вид оценки'
/
COMMENT ON COLUMN sl_load_out_mseg.bwtar_in IS 'Вид оценки'
/
COMMENT ON COLUMN sl_load_out_mseg.bzirk IS 'Группа месторождений'
/
COMMENT ON COLUMN sl_load_out_mseg.cena IS 'Стоимость общего оцененного запаса до проводки'
/
COMMENT ON COLUMN sl_load_out_mseg.charg IS 'Номер партии'
/
COMMENT ON COLUMN sl_load_out_mseg.charg_in IS 'Номер партии'
/
COMMENT ON COLUMN sl_load_out_mseg.country IS 'Код страны'
/
COMMENT ON COLUMN sl_load_out_mseg.deliv_st IS 'Трехзначное текстовое поле для IDOC'
/
COMMENT ON COLUMN sl_load_out_mseg.depcod IS 'Код подразделения'
/
COMMENT ON COLUMN sl_load_out_mseg.dmbtr IS 'Сумма во внутренней валюте'
/
COMMENT ON COLUMN sl_load_out_mseg.dmbtr_buh IS 'Сумма во внетренней валюте'
/
COMMENT ON COLUMN sl_load_out_mseg.docnum IS 'Следующий документ'
/
COMMENT ON COLUMN sl_load_out_mseg.ebeln IS 'Номер заказа на поставку'
/
COMMENT ON COLUMN sl_load_out_mseg.ebelp IS 'Номер позиции документа закупки'
/
COMMENT ON COLUMN sl_load_out_mseg.empst_lgort IS 'Пункт приемки'
/
COMMENT ON COLUMN sl_load_out_mseg.error IS 'Поле текста (1 знак)'
/
COMMENT ON COLUMN sl_load_out_mseg.error_iseg IS 'Поле текста (1 знак)'
/
COMMENT ON COLUMN sl_load_out_mseg.ficha IS 'Первичная партия поступления'
/
COMMENT ON COLUMN sl_load_out_mseg.gjahr IS 'Финансовый год'
/
COMMENT ON COLUMN sl_load_out_mseg.iblnr IS 'Документ инвентаризации'
/
COMMENT ON COLUMN sl_load_out_mseg.id_query IS 'Идентификатор запроса функции'
/
COMMENT ON COLUMN sl_load_out_mseg.invnu IS 'Номер инвентаризации'
/
COMMENT ON COLUMN sl_load_out_mseg.knote_out IS 'Транспортный узел'
/
COMMENT ON COLUMN sl_load_out_mseg.kunnr IS 'Заказчик'
/
COMMENT ON COLUMN sl_load_out_mseg.kunnr1 IS 'Номер дебетора'
/
COMMENT ON COLUMN sl_load_out_mseg.lbkum IS 'Общий объем оцененного запаса'
/
COMMENT ON COLUMN sl_load_out_mseg.lgort IS 'Склад'
/
COMMENT ON COLUMN sl_load_out_mseg.lgort_in IS 'Склад'
/
COMMENT ON COLUMN sl_load_out_mseg.lgort_ox IS 'Склад'
/
COMMENT ON COLUMN sl_load_out_mseg.lifnr IS 'Номер счета поставщика'
/
COMMENT ON COLUMN sl_load_out_mseg.line_id IS 'Однозначный идентификатор строки документа'
/
COMMENT ON COLUMN sl_load_out_mseg.manager IS 'Менеджер'
/
COMMENT ON COLUMN sl_load_out_mseg.matnr IS 'Номер материала'
/
COMMENT ON COLUMN sl_load_out_mseg.mblnr IS 'Номер документа материала'
/
COMMENT ON COLUMN sl_load_out_mseg.meins IS 'Базисная единица измерения'
/
COMMENT ON COLUMN sl_load_out_mseg.meins_alt IS 'Единица измерения ввода'
/
COMMENT ON COLUMN sl_load_out_mseg.menge IS 'Количество'
/
COMMENT ON COLUMN sl_load_out_mseg.menge_alt IS 'Количество в ЕИ ввода'
/
COMMENT ON COLUMN sl_load_out_mseg.mfrgr IS 'Группа фрахта материала'
/
COMMENT ON COLUMN sl_load_out_mseg.mjahr IS 'Год документа материала'
/
COMMENT ON COLUMN sl_load_out_mseg.mol IS 'Группа сбыта'
/
COMMENT ON COLUMN sl_load_out_mseg.mol_in IS 'Склад'
/
COMMENT ON COLUMN sl_load_out_mseg.mol_name IS 'Поле текста, длина 200'
/
COMMENT ON COLUMN sl_load_out_mseg.mwskz IS 'Код налога на добавленную стоимость'
/
COMMENT ON COLUMN sl_load_out_mseg.netpr_zi IS 'Цена нетто'
/
COMMENT ON COLUMN sl_load_out_mseg.npo_td IS 'ГТД(ВТД)'
/
COMMENT ON COLUMN sl_load_out_mseg.obj_num IS 'Объект капстроя (на базе СПП-элемента)'
/
COMMENT ON COLUMN sl_load_out_mseg.parent_id IS 'Однозначный идентификатор строки документа'
/
COMMENT ON COLUMN sl_load_out_mseg.parnr IS 'Номер контактного лица'
/
COMMENT ON COLUMN sl_load_out_mseg.posid IS 'Элемент структурного плана проекта (СПП-элемент)'
/
COMMENT ON COLUMN sl_load_out_mseg.posid_out IS 'Элемент структурного плана проекта (СПП-элемент) (Откуда)'
/
COMMENT ON COLUMN sl_load_out_mseg.posnum IS 'Позиция следующего документа'
/
COMMENT ON COLUMN sl_load_out_mseg.posnv IS 'Предыдущая позиция документа сбыта'
/
COMMENT ON COLUMN sl_load_out_mseg.price IS 'Сумма во внутренний валюте'
/
COMMENT ON COLUMN sl_load_out_mseg.price_buh IS 'Сумма во внутренней валюте'
/
COMMENT ON COLUMN sl_load_out_mseg.price_rl IS 'Сумма во внутренней валюте'
/
COMMENT ON COLUMN sl_load_out_mseg.prz_hran IS 'Поле текста (1 знак)'
/
COMMENT ON COLUMN sl_load_out_mseg.salk3 IS 'Стоимость общего оцененного запаса до проводки'
/
COMMENT ON COLUMN sl_load_out_mseg.sgtxt IS 'Текст позиции'
/
COMMENT ON COLUMN sl_load_out_mseg.shkzg IS 'Индекатор дебета/кредита'
/
COMMENT ON COLUMN sl_load_out_mseg.sjahr IS 'Год документа материала'
/
COMMENT ON COLUMN sl_load_out_mseg.smbln IS 'Номер документа материала'
/
COMMENT ON COLUMN sl_load_out_mseg.smblp IS 'Позиция документа материала'
/
COMMENT ON COLUMN sl_load_out_mseg.spez_od IS 'Индикатор одной позиции'
/
COMMENT ON COLUMN sl_load_out_mseg.umwrk IS 'Завод-получатель/завод поставщик'
/
COMMENT ON COLUMN sl_load_out_mseg.vgbel IS 'Номер документа-образца'
/
COMMENT ON COLUMN sl_load_out_mseg.vgpos IS 'Номер образца позиции сделки'
/
COMMENT ON COLUMN sl_load_out_mseg.vid_d IS 'Код вида деятельности (хран)'
/
COMMENT ON COLUMN sl_load_out_mseg.vid_d_in IS 'Код вида деятельности (хран)'
/
COMMENT ON COLUMN sl_load_out_mseg.vmtr IS 'Вид материала в БИТ'
/
COMMENT ON COLUMN sl_load_out_mseg.vopr IS 'Код операции для интерфейса SAP->БИТ'
/
COMMENT ON COLUMN sl_load_out_mseg.waers IS 'Код валюты'
/
COMMENT ON COLUMN sl_load_out_mseg.waers_buh IS 'Код валюты'
/
COMMENT ON COLUMN sl_load_out_mseg.waers_zi IS 'Код валюты'
/
COMMENT ON COLUMN sl_load_out_mseg.weight_shtuk_length IS 'WEIGHT_SHTUK_LENGTH'
/
COMMENT ON COLUMN sl_load_out_mseg.wempf IS 'Получатель материала'
/
COMMENT ON COLUMN sl_load_out_mseg.wempf1 IS 'Получатель материала'
/
COMMENT ON COLUMN sl_load_out_mseg.werks IS 'Завод'
/
COMMENT ON COLUMN sl_load_out_mseg.werks_in IS 'Завод'
/
COMMENT ON COLUMN sl_load_out_mseg.whcha IS 'Партия ПС'
/
COMMENT ON COLUMN sl_load_out_mseg.xauto IS 'Индикатор: позиция создана автоматически'
/
COMMENT ON COLUMN sl_load_out_mseg.xblni IS 'Ссылочный номер инвентаризации'
/
COMMENT ON COLUMN sl_load_out_mseg.xblnr IS 'Ссылочный номер документа'
/
COMMENT ON COLUMN sl_load_out_mseg.z_charact IS 'Сертификаты'
/
COMMENT ON COLUMN sl_load_out_mseg.zeile IS 'Позиция документа материала'
/
COMMENT ON COLUMN sl_load_out_mseg.zeili IS 'Номер строки'
/
COMMENT ON COLUMN sl_load_out_mseg.zmcha_prcharg IS 'Исходная партия'
/
COMMENT ON COLUMN sl_load_out_mseg.zmcha_prmtr IS 'Исходный МТР'
/
COMMENT ON COLUMN sl_load_out_mseg.zmcha_str_p IS 'Short text'
/
COMMENT ON COLUMN sl_load_out_mseg.zmcha_vl IS 'Short text'
/
COMMENT ON COLUMN sl_load_out_mseg.znpo_td IS 'Значение признака'
/
COMMENT ON COLUMN sl_load_out_mseg.ztxt_prim IS 'Текст продажы материала'
/


Всё точно, как у нас!
Только не смесь французского с нижегородским,
а смесь английского с нижнесаксонским :-)

Комментарии к таблице - это уже русская доработка,
если судить по обилию грамматических ошибок, опечаток, неточностей и недоделок.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
COMMENT ON COLUMN bwart IS 'Вид движения материала(Управление запсами)'
COMMENT ON COLUMN bwart_in IS 'Вид движения материала(Управление запсами)'
COMMENT ON COLUMN dmbtr_buh IS 'Сумма во внетренней валюте'
COMMENT ON COLUMN kunnr1 IS 'Номер дебетора'
COMMENT ON COLUMN obj_num IS 'Объект капстроя (на базе СПП-элемента)'
COMMENT ON COLUMN shkzg IS 'Индекатор дебета/кредита'
COMMENT ON COLUMN vid_d IS 'Код вида деятельности (хран)'
COMMENT ON COLUMN vid_d_in IS 'Код вида деятельности (хран)'
COMMENT ON COLUMN weight_shtuk_length IS 'WEIGHT_SHTUK_LENGTH'
COMMENT ON COLUMN zmcha_str_p IS 'Short text'
COMMENT ON COLUMN zmcha_vl IS 'Short text'
COMMENT ON COLUMN ztxt_prim IS 'Текст продажы материала'


Вот это сильная вещь:
Код: sql
1.
2.
...COLUMN zeile IS 'Позиция документа материала'
...COLUMN zeili IS 'Номер строки'

Точно кто-нибудь перепутает!

Это
Код: plaintext
    weight_shtuk_length            VARCHAR2(60 BYTE),
напомнило встретившееся когда-то
Код: plaintext
WHEN_BYLO DATE
:-)
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40001458
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimkas
Валерий Юринский

Раньше давали короткие имена для экономии памяти.
Теперь это неактуально.

1. Пример хотелось привести наиболее короткий, для наглядности,
2. Конкретно эта таблица по-русски называется "Медицинская организация" и везде по документации сокращается до "MO",
3. Система стартовала на Oracle 8i :)

В целом к трёхбуквенным сокращениям привыкаешь очень сильно,
они быстро начинают восприниматься как просто термин - все вот эти PRC, PRS, SPR, MNT и т.д. - они ж как родные уже :))


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

Реально, допустим, всё. Я, например, участвовал в разработке одной нехилой системы (порядка сотни мегабайт собственных исходников на Си), в которой по техническим причинам имена функций были ограничены 8 символами.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40001947
Dimkas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zeon11
Если у вас двадцать таблиц в БД, то да, ещё можно их хоть как-то закодировать в трёхбуквенные названия, а если в БД триста-четыреста таблиц (а нормальная МИС столько и содержит), то придумать столько коротких названий нереально.

В той базе, про которую шла речь, на сегодня более 400 таблиц и примерно половина активно используется.
Краткие названия (3-4 символа) даны только основным таблицам. Эти же названия являются групповыми префиксами.
Производные таблицы (связи, оглавления, журналы и т.д.) имеют более длинные составные имена.

Логику составления длинных имен я кратко описывал выше 22195168
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002200
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimkas
.........

Логику составления длинных имен я кратко описывал выше 22195168


Вот я и говорю, туши свет!
1. Раз есть таблица МО (Медицинские организации), то в этой БД есть и таблица "Страховые организации", таблица "Контрагенты" и прочее. Получается, что на каждый тип организации создается своя таблица.
2. Поля BGDATE, CLDATE (даты введения и прекращения действия). Это хорошая идея, только что вы будете делать, когда выяснится, что медицинская организация временно прекращала несколько раз свою деятельность? Что, будете создавать новую запись для фактически той-же организации? Или придётся перекраивать структуру БД?
3. Поля BGREASON, CLREASON (основание введения в действие, основание прекращения действия) -
Поля текстовые, иначе в названиях полей был-бы префикс "ID". Т.е. в эти поля кто ни попадя "льет" всякую шнягу,
хотя оснований для начала-прекращения не так много, и вполне их можно оформить в отдельную таблицу, её хотя-бы можно было расширять.
4. Поле CRDATE - дата создания. Это вообще о чём? Дата создания записи? Или дата начала функционирования Медицинской организации? Если первое, то где время, а если второе, то зачем поле BGDATE?
5. Поля MDDATE (дата последнего изменения), MDREASON (основание последнего изменения) - они зачем? Всё-же логируется в таблицу MO_LOG.
6. "при загрузке данных используется промежуточная таблица MO_BUF". Я правильно понимаю, что простым запросом данные не получить, и чтобы пользователю представить актуальные данные необходимо все данные предварительно загрузить в барабан стиральной машинки?
7. В БД есть таблица "Supplier -> SPR", иначе, поставщик. Что будете делать, когда выяснится, что больница решит оказывать услуги сторонним организациям, например, проводить медицинские осмотры для всех автоколонн города? Создавать ещё кучу таблиц, только с логикой "Покупатель-потребитель"?
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002242
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11
6. "при загрузке данных используется промежуточная таблица MO_BUF". Я правильно понимаю, что простым запросом данные не получить, и чтобы пользователю представить актуальные данные необходимо все данные предварительно загрузить в барабан стиральной машинки?


Хорошая аналогия
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002311
graycode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zeon11
5. Поля MDDATE (дата последнего изменения), MDREASON (основание последнего изменения) - они зачем? Всё-же логируется в таблицу MO_LOG.

Не занимайтесь пожалуйста проектированием БД.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002388
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graycode
zeon11
5. Поля MDDATE (дата последнего изменения), MDREASON (основание последнего изменения) - они зачем? Всё-же логируется в таблицу MO_LOG.

Не занимайтесь пожалуйста проектированием БД.


graycode, это не мой велосипед, будьте внимательны в мелочах
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002442
graycode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zeon11,

они зачем? Всё-же логируется в таблицу ..._LOG.
Если это не ваш велосипед то извините, а ежели ваш, то таких "проектировщиков" лучше держать от проектирования подальше.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002563
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graycode
zeon11,

они зачем? Всё-же логируется в таблицу ... _LOG .

Если это не ваш велосипед то извините, а ежели ваш, то таких "проектировщиков" лучше держать от проектирования подальше.

А, теперь понял. Вы огнепламенный борец против "читателей из LOGa".
Теперь по порядку.
Если пройдёте по ссылке https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&msg=22195168,
то увидите, что там есть поле MDDATE - дата последнего изменения , не знаю зачем, но многие разработчики на изменяемые данные делают такое поле. Т.е. изменили данные - сделали пометку. Снова изменили - сделали новую пометку. и т.д. Надо отдать должное, эти разработчики по всей видимости сделали таблицу изменений, назвали её MO_LOG. Так вот, моя мысль заключалась в следующем: если уж разработчикам понадобилась информация о дате последнего изменения, то по правилам нормализации негоже хранить одну и туже информацию в двух местах - поле MDDATE изменяемой таблицы и в отдельной таблице MO_LOG. От чего-то надо отказываться. По мне, в этих условиях (ещё раз - этот велосипед не мой) , так лучше отказаться от поля MDDATE, и прочитать при необходимости всю информацию из таблицы MO_LOG, т.к. она наверняка более информативна. Ну а как эта таблица называется, дело десятое, хоть _LOG, хоть _IZMENENIJA, не я эти таблицы придумываю, но знаю одно, это такие-же таблицы и при необходимости их можно читать. И кстати, как правило эти таблицы не доступны шаловливым ручкам конечных пользователей, а следовательно именно в этих таблицах достоверная информация.
P.S. По поводу "проектировщиков".
При проектировании своих баз данных стремлюсь к тому, чтобы пользователю были недоступны возможности удалить запись или её изменить. Иными словами, пользователь думает, что он удалил запись или её изменил, на самом деле я "подсовываю" ему новую запись. Таким образом у меня вообще нет таблиц LOG и соответственно я таблицы LOG, как и вы, никогда не читаю.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002624
graycode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zeon11
Так вот, моя мысль заключалась в следующем: если уж разработчикам понадобилась информация о дате последнего изменения, то по правилам нормализации негоже хранить одну и туже информацию в двух местах - поле MDDATE изменяемой таблицы и в отдельной таблице MO_LOG.

В таблице в OLTP системах хранится текущее актуальное состояние объекта и дата последнего изменения это именно текущее актуальное состояние объекта, в таблице лога хранится движение объекта во времени, доставать его тяжело и больно, если для работы системы нужны даты прохождения определенных состояний, то размещать их нужно именно в основной таблице, лог используется для разбора полетов или редко запускаемых отчетов, но никак не для оперативной работы, если вы любите стрелять себе в ногу, дело ваше, жаль что разгребать это после вас придется другим людям.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002628
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поля "дата последнего изменения" и "автор последнего изменения" с точки зрения бизнес-логики никогда и ни зачем не нужны. По крайней мере, очень трудно вспомнить случай, где они реально понадобились бы. Но у них есть одно ценное свойство - по ним удобно искать. Говорит Вася "я позавчера работал с этим договором" - и Пете этого, как правило, достаточно. Поэтому по цена/качество их нередко стоит поддерживать, не связываясь ради этого с громоздкими дополнительными структурами.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002635
graycode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zeon11
1. Раз есть таблица МО (Медицинские организации) ...

Если это один из ключевых объектов системы, то почему нет, к чему такая категоричность?

zeon11
2. Поля BGDATE, CLDATE (даты введения и прекращения действия). Это хорошая идея, только что вы будете делать, когда выяснится, что медицинская организация временно прекращала несколько раз свою деятельность? Что, будете создавать новую запись для фактически той-же организации? Или придётся перекраивать структуру БД?

В основной таблице хранится текущее актуальное состояние объекта, а для сохранения цепочки периодов действия, на сколько я вижу, предлагается таблица _HIS, так что ничего перекраивать не нужно.

zeon11
3. Поля BGREASON, CLREASON (основание введения в действие, основание прекращения действия) -
Поля текстовые, иначе в названиях полей был-бы префикс "ID". Т.е. в эти поля кто ни попадя "льет" всякую шнягу,
хотя оснований для начала-прекращения не так много, и вполне их можно оформить в отдельную таблицу, её хотя-бы можно было расширять.

Если в бизнес процессе не предполагается такой сущности и людей которые будут отвечать за ее ведение, зачем ее вводить?

zeon11
4. Поле CRDATE - дата создания. Это вообще о чём? Дата создания записи? Или дата начала функционирования Медицинской организации? Если первое, то где время, а если второе, то зачем поле BGDATE?

В Oracle тип DATE содержит время.

zeon11
6. "при загрузке данных используется промежуточная таблица MO_BUF". Я правильно понимаю, что простым запросом данные не получить, и чтобы пользователю представить актуальные данные необходимо все данные предварительно загрузить в барабан стиральной машинки?

Вы понимаете совершенно неправильно, что впрочем и неудивительно.

zeon11
7. В БД есть таблица "Supplier -> SPR", иначе, поставщик. Что будете делать, когда выяснится, что больница решит оказывать услуги сторонним организациям, например, проводить медицинские осмотры для всех автоколонн города? Создавать ещё кучу таблиц, только с логикой "Покупатель-потребитель"?

Вы себе не представляете, но в информационных системах бывают даже не таблицы, а целые отдельные модули SRM и CRM))
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002742
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graycode
в таблице лога хранится движение объекта во времени, доставать его тяжело и больно


Я конечно дико извиняюсь, но если эти данные доставать тяжело и больно, нахрена они тогда такие упёрлись?

И какую пользу бизнес-логике приносит дата и время последнего изменения без знания о том, что конкретно менялось? Вот у вас таблица с 50 полями. Вы видите, что Вася автор последних изменений в такое-то время.

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


Если для вас представляет сложность работа с аудитом изменений, значит у вас ружьё тупо не стреляет. И как охотник с таким ружьём вы нафиг никому не нужны.

Зато вы себе ногу не отстрелите, хоть что-то хорошоее, да?
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002752
graycode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

Да да да, а потом начинается разгребание вот таких вот каках 22203332 ...

Или биллинги начинают запускать массово, а там сплошняком группировки по максимальной дате по табличке логов весьма неслабых размеров, ой что же делать что же делать, можно как то соптимизировать запросы ... а еще бы логи почистить и оставить в оперативном доступе три последних месяца ... ))
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002882
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graycode

Да да да, а потом начинается разгребание вот таких вот каках 22203332 ...


graycode, что за детский сад? Что вы сюда третьи топики притягиваете? Обиделись, что ваше "гениальное" высказывание
Когда оперативные данные нужно получать из лога, это отвратно спроектированная система
там проигнорировали? А что на него отвечать, это банальная истина, все её знают, что её обсуждать?
И наверняка уважаемый автор того топика это знает. Посмотрите его профиль, у него только в Оракле 1080 сообщений, он на форуме уже 15 лет, а сколько до этого пахал, никто кроме него не знает. И уж про то, что и откуда читать, думаю прекрасно разбирается. И ситуации бывают разные, и информационные системы достаются по наследству, и их надо сопровождать, а не рассуждать, правильно или нет спроектирована система. Поэтому вашу пошлость там проигнорировали.

А это что такое?
graycode

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


Это влажные мечты, как вы спасаете свой отдел? Все такие носятся от компьютера к компьютеру с факелами зажженными, не знают, что делать, причитают, плачут, руки заламывают, а тут появляетесь вы, весь в белом, золотой венок на голове, как же без него, и произносите: Когда оперативные данные нужно получать из лога, это отвратно спроектированная система
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002886
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graycode
Да да да, а потом начинается разгребание вот таких вот каках 22203332 ...


Ни одна концепция сама по себе не является серебряной пулей.
Вы либо можете концепцию применить так, чтобы она приносила пользу, либо нет.

А потом начинается, ООП говно, ФП говно, SOLID говно и т.д. от ребят, которые не осилили ни одной парадигмы из разработки.

graycode
Или биллинги начинают запускать массово, а там сплошняком группировки по максимальной дате по табличке логов весьма неслабых размеров, ой что же делать что же делать, можно как то соптимизировать запросы ... а еще бы логи почистить и оставить в оперативном доступе три последних месяца ... ))


Вариантов решения на сегодняшний момент -- масса.
Если кто-то не умеет, или не способен мыслить и решать задачи, это его проблемы.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002930
graycode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zeon11
graycode, что за детский сад?

Действительно, вам бы не мешало перейти из яслей хотя бы в детский сад.

zeon11
Посмотрите его профиль, у него только в Оракле 1080 сообщений, он на форуме уже 15 лет, а сколько до этого пахал, никто кроме него не знает.

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

zeon11
Это влажные мечты

Ваши влажные мечты меня как то совсем не интересуют.


hVostt
Ни одна концепция сама по себе не является серебряной пулей.

Не могу не согласиться))

hVostt
А потом начинается, ООП говно, ФП говно, SOLID говно и т.д. от ребят, которые не осилили ни одной парадигмы из разработки.

В соседней теме вы очень негативно отнеслись к паттерну репозиторий, да и к паре букв из SOLID тоже))

hVostt
Вариантов решения на сегодняшний момент -- масса.
Если кто-то не умеет, или не способен мыслить и решать задачи, это его проблемы.

Масса, да, но они не бесплатные и зачем устраивать себе в OLTP системе геморрой на ровном месте?
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002965
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graycode
hVostt
А потом начинается, ООП говно, ФП говно, SOLID говно и т.д. от ребят, которые не осилили ни одной парадигмы из разработки.

В соседней теме вы очень негативно отнеслись к паттерну репозиторий, да и к паре букв из SOLID тоже))


К паттерну репозиторий у меня много претензий, но в основном не к самому паттерну, а к тому как его понимают и применяют. К SOLID, в целом тоже самое. Там где вы ратуете за SRP, вы сами же его жёстко нарушаете, но не понимаете этого. Понимание рано или поздно придёт, если вы не решите сменить область деятельности. Дискутировать вы не захотели, чтобы углубить понимание, решили, что у вас есть "мнение" и этого достаточно.

Любая команда будет рада человеку, который придёт со своим мнением, ведь мнение священно, оно у каждого своё и аргументировать его не нужно :)

graycode
hVostt
Вариантов решения на сегодняшний момент -- масса.
Если кто-то не умеет, или не способен мыслить и решать задачи, это его проблемы.

Масса, да, но они не бесплатные и зачем устраивать себе в OLTP системе геморрой на ровном месте?


Да нет никакого геморроя. Я так понимаю, это лично ваш горький опыт. Не думайте, что у всех так.
Мы никаких проблем не испытывали с огромным объёмом информации, количеством сущностей, связей и бизнес-логикой.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002973
graycode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt
К паттерну репозиторий у меня много претензий, но в основном не к самому паттерну, а к тому как его понимают и применяют. К SOLID, в целом тоже самое.

О том как правильно с вашей точки зрения применять вышеозначенные принципы мы узнаем?

hVostt
Там где вы ратуете за SRP, вы сами же его жёстко нарушаете, но не понимаете этого.

Мысли я читать не умею, а каким образом я нарушаю SRP вы рассказать не удосужились.

hVostt
Дискутировать вы не захотели, чтобы углубить понимание, решили, что у вас есть "мнение" и этого достаточно.

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

hVostt
Да нет никакого геморроя. Я так понимаю, это лично ваш горький опыт. Не думайте, что у всех так.
Мы никаких проблем не испытывали с огромным объёмом информации, количеством сущностей, связей и бизнес-логикой.

Снова общие слова, увы они не несут конкретики и не являются аргументацией.
...
Рейтинг: 0 / 0
подскажите хорошую практику наименования связанных таблиц
    #40002981
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graycode
hVostt
К паттерну репозиторий у меня много претензий, но в основном не к самому паттерну, а к тому как его понимают и применяют. К SOLID, в целом тоже самое.

О том как правильно с вашей точки зрения применять вышеозначенные принципы мы узнаем?


Конечно, ведь об этом уже трепались в какой-то из тем.

graycode
hVostt
Там где вы ратуете за SRP, вы сами же его жёстко нарушаете, но не понимаете этого.

Мысли я читать не умею, а каким образом я нарушаю SRP вы рассказать не удосужились.


Так вы решили прекратить дискуссию в той теме.

graycode
hVosttДискутировать вы не захотели, чтобы углубить понимание, решили, что у вас есть "мнение" и этого достаточно.

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

Не, это вы ушли. Я-то остался :)
Честно говоря, мне непонятен термин "мнение" в контексте инженерной дисциплины.

Представьте себе, как два математика спорят, один считает, что 2+2=4, а другой считает, что 2+2=5. Понимаете дикий абсурд ситуации? В чём смысл подобного "обмена мнениями" в подобных случаях?

Я вот говорю, вы не правы в том топике. И мне как-то всё равно, останетесь вы при своём мнении, или нет. Нет цели вас в чём-то убедить.

graycode
hVostt
Да нет никакого геморроя. Я так понимаю, это лично ваш горький опыт. Не думайте, что у всех так.
Мы никаких проблем не испытывали с огромным объёмом информации, количеством сущностей, связей и бизнес-логикой.

Снова общие слова, увы они не несут конкретики и не являются аргументацией.


Погодите, это вы заикнулись:

graycode
В таблице в OLTP системах хранится текущее актуальное состояние объекта и дата последнего изменения это именно текущее актуальное состояние объекта, в таблице лога хранится движение объекта во времени, доставать его тяжело и больно


И я вам прямо говорю, что тяжело и больно -- исключительно для вас. Так как вы пока не умеете работать с такими данными, ещё не хватает опыта, чтобы сделать такую архитектуру и организацию, чтобы не было тяжело и больно.

Какие вам здесь аргументы нужны? Вы и дальше собираетесь настаивать, что такая задача "тяжело и больно" решается для всех?

Интересно, если вы столкнётесь с концепцией Event Sourcing, мозги взорвутся и разметаются по стенам? Ведь там вообще мастер-данные это поток событий -- изменений данных, никаких тебе таблиц.
...
Рейтинг: 0 / 0
25 сообщений из 132, страница 4 из 6
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / подскажите хорошую практику наименования связанных таблиц
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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