|
|
|
проектирование таблицы
|
|||
|---|---|---|---|
|
#18+
Добрый день! Посоветуйте как правильно сделать. Eсть таблица table1 и в ней некий столбец field1. Значение field1 это id(PK) некоего справочника. Соответственно хочу создать foreign key, но таблица в этом поле должна хранить еще значение ВСЕ(0) . Т.е я должен добавить 'ВСЕ' в справочник, но что-то мне это не нравится, или все нормально? Как вообще по-правильному когда в таблице хранится что-то вроде группировки значений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2007, 13:39 |
|
||
|
проектирование таблицы
|
|||
|---|---|---|---|
|
#18+
>Как вообще по-правильному когда в таблице хранится что-то вроде группировки значений? В некоторых случаях, когда, например, легче хранить значение, чем каждый раз его пересчитывать при чтении таблицы >Т.е я должен добавить 'ВСЕ' в справочник Можно добавить в справочник, сверху наложить вьюху, исключающую это "ВСЁ" и работать со справочником только через неё. Второй вариант не делать foreign key, a на таблицу повесить триггер, который будет обеспечивать ссылочную целостность для всех значений, кроме строки "ВСЁ" Третий - перепроектировать таблицы Все зависит от конечной цели, объема данных, частоты обновления и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2007, 15:45 |
|
||
|
проектирование таблицы
|
|||
|---|---|---|---|
|
#18+
Фактически Вы в одно поле складываете разнородную информацию, что противоречит 1НФ. Самое простое - два поля: field1 NULL FK... field1t = 0/1 - ВСЕ/ конкретный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 11:00 |
|
||
|
проектирование таблицы
|
|||
|---|---|---|---|
|
#18+
ModelRФактически Вы в одно поле складываете разнородную информацию, что противоречит 1НФ. Самое простое - два поля: field1 NULL FK... field1t = 0/1 - ВСЕ/ конкретный. Да, наверное правильнее всего так сделать. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 13:49 |
|
||
|
проектирование таблицы
|
|||
|---|---|---|---|
|
#18+
AlS72 ModelRФактически Вы в одно поле складываете разнородную информацию, что противоречит 1НФ. Самое простое - два поля: field1 NULL FK... field1t = 0/1 - ВСЕ/ конкретный. Да, наверное правильнее всего так сделать. Спасибо. Не правильнее, а проще. Там где есть вариант "все" и "конкретный", вполне возможен и вариант "все кроме этих 10 штук". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 14:24 |
|
||
|
проектирование таблицы
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов AlS72 ModelRФактически Вы в одно поле складываете разнородную информацию, что противоречит 1НФ. Самое простое - два поля: field1 NULL FK... field1t = 0/1 - ВСЕ/ конкретный. Да, наверное правильнее всего так сделать. Спасибо. Не правильнее, а проще. Там где есть вариант "все" и "конкретный", вполне возможен и вариант "все кроме этих 10 штук". Все верно, но в целом идея, как я понимаю, остается той же использовать 2 поля. Только для второго возможно неограниченное количество значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 14:53 |
|
||
|
проектирование таблицы
|
|||
|---|---|---|---|
|
#18+
AlS72в целом идея, как я понимаю, остается той же использовать 2 поля. Только для второго возможно неограниченное количество значений. Это как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 15:08 |
|
||
|
проектирование таблицы
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов AlS72в целом идея, как я понимаю, остается той же использовать 2 поля. Только для второго возможно неограниченное количество значений. Это как?Например, связь Много-ко-Многим с таблицей MY_USERS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 16:04 |
|
||
|
проектирование таблицы
|
|||
|---|---|---|---|
|
#18+
directcontact Сергей Васкецов AlS72в целом идея, как я понимаю, остается той же использовать 2 поля. Только для второго возможно неограниченное количество значений. Это как?Например, связь Много-ко-Многим с таблицей MY_USERS Позволю себе напомнить, что второе поле - это "field1t = 0/1 - ВСЕ/ конкретный". Как там может быть "неограниченное количество значений"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 16:18 |
|
||
|
проектирование таблицы
|
|||
|---|---|---|---|
|
#18+
Сергей ВаскецовПозволю себе напомнить, что второе поле - это "field1t = 0/1 - ВСЕ/ конкретный". Как там может быть "неограниченное количество значений"?Если не придираться к словам, то это спокойно реализуется через третье значение и добавлением доп таблицы - права на объект (собственно many to many). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 17:31 |
|
||
|
проектирование таблицы
|
|||
|---|---|---|---|
|
#18+
Сергей ВаскецовПозволю себе напомнить, что второе поле - это "field1t = 0/1 - ВСЕ/ конкретный". Как там может быть "неограниченное количество значений"? У меня в задаче так даные поступают. Может быть по конкретному значению может быть по всем. Но теоретически данные могут поступать например так: значения с 1-10й (field1t=2), значения с 11-20й (field1t=3) и т.д . Вот я о чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 04:51 |
|
||
|
|

start [/forum/search_topic.php?author=Electrophasetronic&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
get settings: |
8ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
177ms |
get topic data: |
8ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 1116ms |
| total: | 1413ms |

| 0 / 0 |
