|
|
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
Есть таблица категории и таблица подкатегории, идентифицирующая связь один к одному. Категория имеет внешний ключ в одну сторону (типа CASCADE), подкатегория - внешний ключ в другую сторону (тоже CASCADE). Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Если удаляем категорию, каскадно удаляется подкатегория. Если удаляем внешний родительскую запись категории, удаляется каскадно категория и подкатегория. Тут все нормально. Проблема в том, что если удалить запись auto_card, то подкатегория тоже удалится каскадно, а категория не удалится. Но категория без подкатегории не имеет смысла. Надо чтобы тоже удалялась. Можно ли сделать колцевую зависимость в обе стороны? В нижней таблице внешний ключ на верхнюю, в верхней - внешний ключ на нижнюю? Если удаляется запись по внешнему ключу категории, то удаляется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 15:38:06 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
Здесь тоже каскадный ключ. Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 15:39:58 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
Чтоб проще понять: можно ли сделать вот так? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 15:46:06 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
Или еще проще, чтоб понятно было: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 15:47:28 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
svnvladНо категория без подкатегории не имеет смысла.Это почему это? Не знаю, что у вас за предметная область, но обычно в категории может быть несколько категорий, включая ноль. И если так, то зачем две таблицы? Почему не объединить в одну? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 15:48:04 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
miksoft, есть карточка груза, который может быть связан с автомобилем и с вагоном. если удаляется автомобиль, в котром лежал груз, то нет смысла и в этой карточке груза. так же и с вагоном. А верхняя таблица содержит общие поля, и на нее может быть в других таблицах одна ссылка, а не разные (№ вагона, № авто). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 15:53:51 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
svnvladесли удаляется автомобиль, в котром лежал грузЯ спрашивал про обратное направление. Если удалили груз, то зачем удалять весь автомобиль? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 15:57:50 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
miksoft, в общем вот: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 15:59:59 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
miksoftsvnvladесли удаляется автомобиль, в котром лежал грузЯ спрашивал про обратное направление. Если удалили груз, то зачем удалять весь автомобиль? вы не понимаете, автомобиль никто не удаляет. автомобиля на схеме не видно, так же как и сам груз. вот этот кортеж card_cargo - auto_card_cargo связывает груз и автомобиль. груз это по ссылке contract_cargo_sub_id, автомобиль по ссылке auto_card_id. Если удаляется груз, то обе вот эти таблицы должны удалиться, а если удаляется автомобиль, то тоже обе этих должны удалиться, потому что это как бы одна таблица. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 16:03:02 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
cargo_card и auto_cargo_card имеют общий id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 16:06:28 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
автомобили находятся справа от правой таблицы, грузы - сверху от левой таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 16:07:15 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
чтобы обращаться одинаково и к карточкам груза автомобиля, и к карточкам груза вагона, была сделана объединяющая их категория. теперь понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 16:08:57 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
svnvladвы не понимаетеНе понимаю, поэтому и задаю дурацкие вопросы. Имхо, правильно спроектировать таблицы можно только зная предметную область и поставленную задачу. svnvladавтомобиля на схеме не видно, так же как и сам груз.Т.е. "карточка груза" - это не груз? Логично, да... svnvladЕсли удаляется груз, то обе вот эти таблицы должны удалиться, а если удаляется автомобиль, то тоже обе этих должны удалиться, потому что это как бы одна таблица.Тогда повторю вопрос - зачем две таблицы? Почему не объединить в одну? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 16:08:58 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
svnvladчтобы обращаться одинаково и к карточкам груза автомобиля, и к карточкам груза вагона, была сделана объединяющая их категория. теперь понятно?А зачем разделены таблицы автомобилей и вагонов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 16:10:27 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
miksoftТогда повторю вопрос - зачем две таблицы? Почему не объединить в одну? Потому что есть еще карточка вагона. А надо обращаться и к карточке автомобиля, и к карточке вагона одним способом, по одному полю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 16:10:33 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
Вы не знакомы, что такое идентифицирующее отношение, категоризация. Это не про "группа товара" и "товар". А про Человек - женщина, человек - мужчина. У женщины есть поле "Размер матки", у мужчины - "Размер простаты" )) А обращаться к ним хочется по одному полю Id_человека. так вот если вы удалите запись из поля мужчина, то запись в поле человек тоже надо удалять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 16:12:55 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
из таблицы вернее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 16:13:49 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
svnvladЭто не про "группа товара" и "товар". А про Человек - женщина, человек - мужчина. У женщины есть поле "Размер матки", у мужчины - "Размер простаты" )) А обращаться к ним хочется по одному полю Id_человека. так вот если вы удалите запись из поля мужчина, то запись в поле человек тоже надо удалять.Это не мешает сделать одну таблицу и заполнять только те поля, которые нужны/возможны для данного типа человека. В других СУБД можно даже констрейнт соответствующий наложить. В MySQL можно сделать аналог такого констрейнта триггером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 16:16:10 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
svnvladmiksoftТогда повторю вопрос - зачем две таблицы? Почему не объединить в одну? Потому что есть еще карточка вагона. А надо обращаться и к карточке автомобиля, и к карточке вагона одним способом, по одному полю.А когда появятся самолеты и воздушные шары, будете еще таблицы создавать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 16:17:01 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
miksoft svnvladавтомобиля на схеме не видно, так же как и сам груз.Т.е. "карточка груза" - это не груз? Логично, да... Карточка груза - это маленькая партия (большого конкретного груза) в данном транспортном средстве. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 16:18:59 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
miksoftsvnvladпропущено... Потому что есть еще карточка вагона. А надо обращаться и к карточке автомобиля, и к карточке вагона одним способом, по одному полю.А когда появятся самолеты и воздушные шары, будете еще таблицы создавать? А вы предлагаете сделать так? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. При том, что ненулевое значение будет только в одном из полей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 16:22:51 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
Или еще веселей: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 16:26:29 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
svnvladmiksoftпропущено... Т.е. "карточка груза" - это не груз? Логично, да... Карточка груза - это маленькая партия (большого конкретного груза) в данном транспортном средстве.Если это партия, неделимая в процессе транспортировки, то у нас это называется "тарное место". Физически это обычно либо палетта, либо небольшой контейнер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 16:27:31 |
|
||
|
Можно ли связать две таблицы 1 к 1 в обе стороны?
|
|||
|---|---|---|---|
|
#18+
svnvladmiksoftпропущено... А когда появятся самолеты и воздушные шары, будете еще таблицы создавать? А вы предлагаете сделать так? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. При том, что ненулевое значение будет только в одном из полей?Нет, вот так: Код: sql 1. 2. 3. 4. 5. 6. Кстати, необходимость поля id тут тоже под вопросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2015, 16:30:22 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39040758&tid=1832736]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 318ms |

| 0 / 0 |
