|
|
|
Проектирование системы справочников. Что лучше
|
|||
|---|---|---|---|
|
#18+
Буду смотреть в сторону EAV. Всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2014, 10:41 |
|
||
|
Проектирование системы справочников. Что лучше
|
|||
|---|---|---|---|
|
#18+
RaxtaБуду смотреть в сторону EAV. Всем спасибо! в pg (и именно в pg -- т.к. ddl там можно накатывать в транзакциях) не проблема нарисовать security definer ф-ю[и] [owner == superdba] (например как триггер[ы] на таблицу[s] метаданных), который будет [CREATE|ALTER] TABLE , со всеми плюшками оного (CONSTRAINTS, INDEXES, валидация и т.п.). DROP [TABLE/COLUMN] запретить (юзверям). Сделать поле is_dropped в метаданных. Будет в разы шустрее еава. но запросы все придется делать динамическими (пошивать в клиенте, или в хранимках) - по метаописаниям. то же - с интермордами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2014, 11:32 |
|
||
|
Проектирование системы справочников. Что лучше
|
|||
|---|---|---|---|
|
#18+
Cat2Очень лысыйто заместо суррогатного id можно использовать осмысленное уникальное значение И будет очень весело, когда какой-нибудь пользователь решит, что это значение не особенно осмысленное и решить его переосмыслить Это уже отдельная песня. Про пользователей и их права. Опять таки, я оговорился про перечисление. Т.е. речь о частном случае. Иначе можно скатиться в бесперспективный холивар о том, что лучше: суррогат или естественный ключ. Так или иначе, но этап безоговорочного преклонения перед суррогатами и увлечения EAV у меня, к счастью, в прошлом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2014, 13:56 |
|
||
|
Проектирование системы справочников. Что лучше
|
|||
|---|---|---|---|
|
#18+
опять школота новички думают, что изобрели велосипед. А когда начинается реальный life-цикл, то куда-то исчезают и остается жуткий говнокод. без обид ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2014, 22:13 |
|
||
|
Проектирование системы справочников. Что лучше
|
|||
|---|---|---|---|
|
#18+
babona, Вот поэтому и решил сначала посоветоваться, что бы не плодить говнокода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2014, 09:27 |
|
||
|
Проектирование системы справочников. Что лучше
|
|||
|---|---|---|---|
|
#18+
> жуткий говнокод Говнокод начинается, когда задачи ставят дебилы. Не бывает красивого решения кривой задачи. По определению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2014, 09:33 |
|
||
|
Проектирование системы справочников. Что лучше
|
|||
|---|---|---|---|
|
#18+
RaxtaВот поэтому и решил сначала посоветоваться, что бы не плодить говнокода. Да ладно чо стеснятся то, здесь все свои. Каждый здесь открывал для себя EAV от перспектив которого захватывало дух - это ж какая экономия, можно только тремя таблицами обойтись, а власти старшие товарищи скрывают. Всю скучную теорию можно выкинуть, пользователей можно не мучить допросами (у нас же гибкая структура), у ДБА можно не выпрашивать прав, и никаких тебе ограничений - полная свобода творчества. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2014, 17:53 |
|
||
|
Проектирование системы справочников. Что лучше
|
|||
|---|---|---|---|
|
#18+
Не нужно так делать - потом без поллитры не разберешься + потенциальные проблемы с быстродействием. Главный вопрос тут - "зачем юзерам новые поля". Если к этим полям будет какая-то логика прикручиваться или для них будут нужны индексы, то лучше не извращаться и делать отдельные таблицы. Если не будет и индексы не нужны - то вас, скорее всего, обманывают :-) Если справочников реально много, причем большинство из них двухколоночные id, name, то имеет смысл сделать универсальное решение, примерно так: DICTIONARY (ID, VERSION, CREATED, UPDATED, ENABLED, TYPE, TABLENAME, VALUE) TYPE -это тип справочника. Если будет нужен справочник с бОльшим кол-вом полей, то они добавляются в отдельную таблицу со связью один-к-одному, а ее название вписывается в TABLENAME. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 03:04 |
|
||
|
Проектирование системы справочников. Что лучше
|
|||
|---|---|---|---|
|
#18+
SERG1257Каждый здесь открывал для себя EAV от перспектив которого захватывало дух - .... Вроде не кажный. Кто-то все же смотрел на это как на РМД вывернутую на изнанку. Поскольку типа оно живет в РМД, но РМД не задумывалось для оного. Т.е. на нем, скорей всего, достоинства РМД могут утрачиваться. И вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 09:59 |
|
||
|
Проектирование системы справочников. Что лучше
|
|||
|---|---|---|---|
|
#18+
vadiminfo Вроде не кажныйХорошо, вас эта болезнь не коснулась scf Если справочников реально много, причем большинство из них двухколоночные id, name, то имеет смысл сделать универсальное решение, примерно такКакой? В теме по универсальным справочникам я так и не услышал ни одного объективного довода ЗА (кроме уменьшения количества таблиц), ВСЕ доводы были - ваши аргументы ПРОТИВ слабые, МНЕ так удобно, поэтому дайте тезисно ВАШИ личные доводы ЗА такую структуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 17:51 |
|
||
|
Проектирование системы справочников. Что лучше
|
|||
|---|---|---|---|
|
#18+
SERG1257, довод ЗА - это, очевидно, время добавления нового справочника. причем не только в базу, но и в приложение. Не нужно будет дублировать логику версионности и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 18:09 |
|
||
|
Проектирование системы справочников. Что лучше
|
|||
|---|---|---|---|
|
#18+
scf время добавления нового справочникаУ вас create table долго делается? Или не хотите идти на поклон к ДБА за правами на DDL? А придется, ибо мало справочник создать надо на него ссылатся. scf но и в приложение а здесь-то какой затык? Долго разрабатывать форму для редактирования простейшего справочника? Или пользуетесь универсальной формой на select id, name from universal_dict where type=@type и не знаете как натравить эту форму на select id, name from @dict_table scf Не нужно будет дублировать логику версионности и т.п. Принимается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 18:25 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38776523&tid=1540770]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 377ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...