| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | ||||||||||||||||||||||||
2 | Tables.json - правила заполнения | |||||||||||||||||||||||
3 | ||||||||||||||||||||||||
4 | ||||||||||||||||||||||||
5 | Текст | Длинный текст | Число | Число с плавающей точкой | Чекбокс | Связанная таблица (например, выпадающий список) | Дата | Конкатинированные поля | ||||||||||||||||
6 | type | varchar | text | bigint | DECIMAL(A, B) A - Кол-во символов до запятой B - Кол-во символов после запятой | tinyint | varchar | date | varchar | |||||||||||||||
7 | length | 255 | 20 | 1 | 255 | 255 | ||||||||||||||||||
8 | from_table | Наименование класса (таблицы), из которого необходимо подтянуть значение поля. | ||||||||||||||||||||||
9 | keyword | Для того чтобы подтянуть значение из внешней таблицы необходимо, внутри текущего класса создать "внешнее_поле_id", пример (подтягивем пол для юзера): В классе пол (простой справочник): gender "id": {"type": "bigint","length": "20","notNull": true,"autoInc": true,"primary_key": true}, "name": {"type": "varchar","length": "255"}, "sysname": {"type": "varchar","length": "255"} В классе юзер: user "gender_id" : {"type":"bigint","length":"20"} - просто поле, которое будет хранить id "gender" : {"type":"varchar","length":"255", "from_table":"gender", "keyword":"gender_id", "return_column":"name", "is_virtual":"true"} Таким образом, в таблице юзер, поле gender будет вытягивать значение колонки name, определенного в поле "return_column" из таблицы пол с id равным gender_id. | ||||||||||||||||||||||
10 | return_column | Наименование колонки во внешнем классе, откуда подтягивается поле, значение какой колонки вернуть. | ||||||||||||||||||||||
11 | join table | Зачастую, необходимо подтянуть значение поля через 2 таблицы, например у нас есть 3 класса: 1. Заказ (order_) 2. Станция метро (metro_station) 3. Линия метро (metro_line) Нам необходимо получить название линии метро в заказе, однако заказ знает только id станции метро, у которой в свою очередь есть id линии метро. Итак, нам необходимо подтянуть название линии через транзитную таблицу станции метро. metro_line "id": { "type": "bigint", "length": "20", "notNull": true, "autoInc": true, "primary_key": true}, "name" : {"type": "varchar", "length": "255", "name": "Наименование"}, "number" : {"type": "varchar", "length": "255", "name": "Номер линии"}, "color" : {"type": "varchar", "length": "255", "name": "Цвет"} metro_station "id": { "type": "bigint", "length": "20", "notNull": true, "autoInc": true, "primary_key": true}, "line_id" : {"type": "bigint", "length": "20", "visible": false}, "name" : {"type": "varchar", "length": "255", "name": "Наименование станции"}, order_ "metro_station_id" : {"type": "bigint", "length": "20", "visible": false}, - определяем id станции метро "metro_line_id" : {"type": "varchar", "length": "255", "from_table": "metro_station", "keyword": "metro_station_id", "return_column": "line_id", "is_virtual": true}, - подтягиваем id линии метро из таблицы metro_station "metro_line" : {"type": "varchar", "length": "255", "from_table": "metro_line", "join_table": "metro_station", "keyword": "line_id", "return_column": "name", "is_virtual": true, "name": "Линия метро"}, - Подтягиваем название линии метро из таблицы metro_line через (join_table) таблицу metro_station, используя keyword находящийся в таблице metro_station, в поле from_table указываем конечную таблицу из которой получаем данные - metro_line. | ||||||||||||||||||||||
12 | table_alias | Бывают случаи, когда в одном и том же классе необходимо дважды обратиться к внешней таблице для получения одих и тех же полей но для разных случаев, например, в заказе (order_) есть поля "откуда забрать заказ" и "куда отвезти заказ", оба этих поля подтягивают станцию метро. Для того, чтобы данные в этих полях подтягивались по отдельности и имели свои уникальные значения существует параметр "table_alias", значение можно указывать на свое усмотрение. Пример: "from_metro_line" : {"type": "varchar", "length": "255", "from_table": "metro_line", "join_table": "metro_station", "table_alias": "metro_station_1", "keyword": "line_id", "return_column": "name", "is_virtual": true, "name": "Откуда забрать, Линия метро"}, "to_metro_line" : {"type": "varchar", "length": "255", "from_table": "metro_line", "join_table": "metro_station", "table_alias": "metro_station_2", "keyword": "line_id", "return_column": "name", "is_virtual": true, "name": "Куда отвезти, Линия метро"}, | ||||||||||||||||||||||
13 | concat_fields | Значение нескольких полей из одного класса можно канкатинировать, например чтобы собрать ФИО в одно поле из полей Фамилии Имя и Отчество. Например: "firstname": {"type": "varchar","length": "255"}, "lastname": {"type": "varchar","length": "255"}, "midname": {"type": "varchar","length": "255"}, "fio" : {"type": "varchar", "length": "255", "concat_fields": "firstname, ,midname, ,lastname", "is_virtual": true, "name": "ФИО"} Конкатинировать можно значения полей а также добавлять символы или статические данные, все значения разделяются запятыми. | ||||||||||||||||||||||
14 | is_virtual | true - поля, которые подтягиваются из внешних таблиц являются виртуальными, значение is_virtual должно быть true. | "true" | |||||||||||||||||||||
15 | name | Имя колонки которе будут видеть пользователи вашей системы. | ||||||||||||||||||||||
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 |