|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
Добрый день! В приложении из одной сущности (A) в какой-то момент создаётся другая сущность (Б). Не каждая (А) может преобразиться в (Б), но если преображается то только один раз. Т.е. одна сущность (А) соответствует не более чем одной сущности (Б). Также всякая сущность (Б) имеет родительскую сущность (А) и только одну. Так вот для этих сущностей есть таблицы А и Б, стоит ли при создании Б не генерировать ID автоинкрементом, а просто делать его таким-же как у родительской сущности А? Таким образом обойтись без доп. поля в таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2018, 12:40 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
kormotстоит ли при создании Б не генерировать ID автоинкрементом, а просто делать его таким-же как у родительской сущности А? Не просто можно, а нужно. Как ты foreign key между ними пробрасывать будешь? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2018, 13:44 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovНе просто можно, а нужно. Как ты foreign key между ними пробрасывать будешь? Ну исключая вариант с доп. таблицей связывающей А и Б, думал ещё о варианте с полем A_ID у сущности Б. Но вроде бы лишний индекс получается без особой на то надобности. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2018, 14:27 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
kormotдумал ещё о варианте с полем A_ID у сущности Б. Но вроде бы лишний индекс получается без особой на то надобности. Прэлеестно. То есть контроль за "всякая сущность (Б) имеет родительскую сущность (А)" тебе без надобности. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2018, 14:33 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovПрэлеестно. То есть контроль за "всякая сущность (Б) имеет родительскую сущность (А)" тебе без надобности. Так нет, как без надобности, в случае с полем A_ID - оно было бы внешним ключом, в случае просто с id - id может быть внешним ключом и ещё с ограничением UNIQUE. Получается вроде и уникальный идентификатор записи в таблице и внешний ключ. Просто почему думаю над этими вариантами, условие что сущность А имеет не более одного потомка Б - это я пока так думаю. А вот если окажется что допустимо их несколько, то в случае реализации этой связи доп.полем A_ID всё пройдёт гладко, достаточно будет лишь ограничение UNIQUE с него убрать, а вот в случае если id будет и PK и FK, то придётся перелопачивать думаю много всего и в итоге приходить к варианту либо с доп.полем, либо к третьей таблице связывающей сущности. В общем понятно что сам ещё не понял чего надо :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2018, 14:41 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
kormotПросто почему думаю над этими вариантами, условие что сущность А имеет не более одного потомка Б - это я пока так думаю. А вот если окажется что допустимо их несколько, то в случае реализации этой связи доп.полем A_ID всё пройдёт гладко, достаточно будет лишь ограничение UNIQUE с него убрать, а вот в случае если id будет и PK и FK, то придётся перелопачивать думаю много всего и в итоге приходить к варианту либо с доп.полем, либо к третьей таблице связывающей сущности.Все правильно думаете, чрезмерно жесткую схему БД делать не стоит, чтобы потом не пришлось тратить доп. усилия на ее перекраивание. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2018, 16:59 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
kormot, а можно реальный пример ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2018, 17:14 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
kormotстоит ли при создании Б не генерировать ID автоинкрементом, а просто делать его таким-же как у родительской сущности А? это одна из распространённых реализаций отношения один к одному ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2018, 17:45 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
Озверинkormot, а можно реальный пример ? Реальный пример того что этим всем описывается? Из черновика книги - сама книга. А подумал о возможном варианте один ко многим в связи с тем, что черновик может быть как-бы прародителем для разных произведений. Ну это так, высосанный из пальца пример :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2018, 18:31 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
skyANAэто одна из распространённых реализаций отношения один к одному Хорошо, спасибо! Буду знать и употреблять в случае необходимости. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2018, 18:32 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
kormotОзверинkormot, а можно реальный пример ? Реальный пример того что этим всем описывается? Из черновика книги - сама книга. А подумал о возможном варианте один ко многим в связи с тем, что черновик может быть как-бы прародителем для разных произведений. Ну это так, высосанный из пальца пример :) как-то я не вижу тут связи - родитель-ребенок. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2018, 18:51 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
Озверинкак-то я не вижу тут связи - родитель-ребенок. Ну это я говорю же притянутый за уши пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2018, 18:53 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
kormotИз черновика книги - сама книга. kormotНу это я говорю же притянутый за уши пример. Здается мне тут не нужно сущности В от слова совсем... В сущности А достаточно галку добавить, нету галки - это А, есть галка - считай что это В... Если состояний больше, добавь не галку а число (1- черновик, 2- не черновик, 3- еще какая хрень) На случай kormotА подумал о возможном варианте один ко многим в связи с тем, что черновик может быть как-бы прародителем для разных произведений. Добавь сразу подчиненную таблицу к А с по барабану каким колючем на перспективу и пусть пока болтается пустая (карман не тянет) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2018, 23:27 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
vmag, черновик отдельная сущность от книги с совершенно другим набором атрибутов. Более того, черновиков может быть несколько. p.s. Заводить таблицу только для того, чтобы она болталась пустой - это для чего? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 08:06 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
Озверинvmag, черновик отдельная сущность от книги с совершенно другим набором атрибутов. Более того, черновиков может быть несколько. p.s. Заводить таблицу только для того, чтобы она болталась пустой - это для чего? Да ТС может так, - ляпнул про книги с потолка... Тут же все (как всегда) пытаются обсудить свое решение проблемы вместо самой проблемы... Вместо того чтобы спросить так: -нужно выкопать траншею, как вы смотрите на то чтобы выкопать ее лопатой? -спрашивают - какой лопатой лучше копать с железной ручкой или деревянной... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 11:10 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
Озверин, Если Так не с потолка Озверинерновик отдельная сущность от книги с совершенно другим набором атрибутов то да, возможно даже так будет : А идея -> В - черновики, -> С - книги ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 11:15 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
vmagДа ТС может так, - ляпнул про книги с потолка... Тут же все (как всегда) пытаются обсудить свое решение проблемы вместо самой проблемы... Вместо того чтобы спросить так: -нужно выкопать траншею, как вы смотрите на то чтобы выкопать ее лопатой? -спрашивают - какой лопатой лучше копать с железной ручкой или деревянной... Красиво описано и в самую точку :) Так и есть, но всю идею над которой работаю и вправду не хочу описывать из различных соображений. Тут на форуме специалисты думаю уже не одну сотню носителей "секретных гениальных идей" пережили, и меня переживёте :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 12:37 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
kormotТак вот для этих сущностей есть таблицы А и Б, стоит ли при создании Б не генерировать ID автоинкрементом, а просто делать его таким-же как у родительской сущности А? Таким образом обойтись без доп. поля в таблице. В чем проблема - две таблицы, у каждой свой ключ - ID, только у второй он по foreign key связан идентифицирующей связью с ID в первой таблице. Никаких доп полей. kormotТ.е. одна сущность (А) соответствует не более чем одной сущности (Б). Также всякая сущность (Б) имеет родительскую сущность (А) и только одну. Все обозначенные условия выполняются ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 14:34 |
|
Стоит ли id в двух таблицах делать одинаковыми?
|
|||
---|---|---|---|
#18+
kormotА вот если окажется что допустимо их несколько, то в случае реализации этой связи доп.полем A_ID всё пройдёт гладко, достаточно будет лишь ограничение UNIQUE с него убрать, а вот в случае если id будет и PK и FK, то придётся перелопачивать думаю много всего и в итоге приходить к варианту либо с доп.полем, либо к третьей таблице связывающей сущности. Если несколько допустимо -тогда во второй таблице в ключ надо добавить дату или не знаю что там идентифицирует однозначно запись. В любом случае со стратегией записи нужно определиться до начала реализации. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2018, 14:37 |
|
|
start [/forum/topic.php?fid=32&msg=39733123&tid=1539982]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 252ms |
total: | 420ms |
0 / 0 |