|
Уникальное значение по двум полям
|
|||
---|---|---|---|
#18+
Скажите, а как сделать в таблице уникальное поле из двух полей? И при этом должен быть и инкрементный ключ. Сейчас в таблице 3 поля: Код: plaintext
ID ключевое, а вот по FileID и SheetID - необходимы уникальные значения. т.е. записи Код: plaintext 1.
а вот, Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 02:26 |
|
Уникальное значение по двум полям
|
|||
---|---|---|---|
#18+
palladin600, из FileID и SheetID сделать уникальный индекс. Генерацию уникальных сочетаний сделать самому, либо кодом VBA, либо макросом данных (не пробовал, но думаю возможно). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 04:08 |
|
Уникальное значение по двум полям
|
|||
---|---|---|---|
#18+
Зачем нужен синтетический ключ, если есть уникальная комбинация полей? Причём поля - заведомо числовые... Удалите ID, а пару (FileID, SheetID) сделайте первичным ключом. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 08:03 |
|
Уникальное значение по двум полям
|
|||
---|---|---|---|
#18+
Ключевое поле может быть сложным, то есть состоять из нескольких. Access умеет это делать и следить за уникальностью, но тогда поле ID станет рудиментом. Если база крутиться на SQL, то (в mssql) ключевое поле может быть одним единственным, однако уникальных может быть и несколько. На крайний случай можно сделать следующее: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
ну или как-то так.. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 08:04 |
|
Уникальное значение по двум полям
|
|||
---|---|---|---|
#18+
AkinaЗачем нужен синтетический ключ, если есть уникальная комбинация полей?Суррогатный ключ удобней для однозначной идентификации, в смысле работать с ним. ИМХО ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 08:13 |
|
Уникальное значение по двум полям
|
|||
---|---|---|---|
#18+
ПанургСуррогатный ключ удобней для однозначной идентификации, в смысле работать с ним.Если надо однозначно идентифицировать запись ЭТОЙ таблицы - да. Однако мы имеем дело со ссылочной таблицей, организующей M:N, в которой идентификация записи этой таблицы в принципе лишена смысла. А как только с ней связываются референсные таблицы - надобность в идентификации отпадает. Поэтому в данном конкретном случае суррогатный ключ скорее всё же избыточен, и лучше использовать естественный составной ключ. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 08:45 |
|
Уникальное значение по двум полям
|
|||
---|---|---|---|
#18+
AkinaОднако мы имеем дело со ссылочной таблицейНу если так Akinaв данном конкретном случае суррогатный ключ скорее всё же избыточен то да. Мне почему-то показалось изначально что это типа нумерация какая-то, параграфы и подпункты. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 09:43 |
|
Уникальное значение по двум полям
|
|||
---|---|---|---|
#18+
Akina...Поэтому в данном конкретном случае суррогатный ключ скорее всё же избыточен, и лучше использовать естественный составной ключ. Вот, я обычно так всегда и делаю. А тут как-то не сходится, т.е. мне надо в в другой таблице, скажем, tblSheetPreferences нужно указать какие-то характеристики Листа. И когда я буду вносить записи, то как по таблице понять, что лист относится к конкретному файлу? т.е. в справочнике tblSheets : Код: plaintext 1. 2.
а уже в tblSheetPreferences : Код: plaintext 1. 2.
поэтому, меня и смутила неоднозначность составного ключа, что решил добавить еще и счётчик в tblSheets. Выходит, что не нужен он тут? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 10:37 |
|
Уникальное значение по двум полям
|
|||
---|---|---|---|
#18+
palladin600, в таблице tblSheetPreferences определи свой ключ (он для правильной работы запросов) palladin600А тут как-то не сходится, т.е. мне надо в в другой таблице, скажем, tblSheetPreferences нужно указать какие-то характеристики Листа. И когда я буду вносить записи, то как по таблице понять, что лист относится к конкретному файлу?А что тут сложного? везде идёт связь один ко многим от файла к настройкам. Надеюсь ты не напрямую собрался изменять данные. Ну и в таком случае в запросе можно построить так чтобы было видно что куда. palladin600счётчик в tblSheets. Выходит, что не нужен он тут?не нужен ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 10:51 |
|
Уникальное значение по двум полям
|
|||
---|---|---|---|
#18+
palladin600а уже в tblSheetPreferences : Код: plaintext 1. 2.
palladin600т.е. в справочнике tblSheets : Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 10:55 |
|
Уникальное значение по двум полям
|
|||
---|---|---|---|
#18+
Панургpalladin600, в таблице tblSheetPreferences определи свой ключ (он для правильной работы запросов) А смысл? Тут я бы хотел тоже сделать составной ключ из двух полей. Выходит, при таком каркасе этого не выйдет? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 10:58 |
|
Уникальное значение по двум полям
|
|||
---|---|---|---|
#18+
palladin600, если же SheetID это номер в коллекции таблиц Excel, то его не следует использовать для связи, оно идёт как свойство. Суррогатные ключи используются только для идентификации записи (связи) и наполнять их каким-либо другим смыслом не следует. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 11:00 |
|
Уникальное значение по двум полям
|
|||
---|---|---|---|
#18+
palladin600А смысл?некоторые запросы без ключа/индекса работать правильно не будут. И редактироваться тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 11:01 |
|
Уникальное значение по двум полям
|
|||
---|---|---|---|
#18+
palladin600Тут я бы хотел тоже сделать составной ключ из двух полей.как будешь заполнять? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 11:04 |
|
Уникальное значение по двум полям
|
|||
---|---|---|---|
#18+
palladin600Тут я бы хотел тоже сделать составной ключ из двух полей.Как будешь связи строить? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 11:16 |
|
Уникальное значение по двум полям
|
|||
---|---|---|---|
#18+
Панург, ну вот если бы был суррогатный ключ в tblSheets, то не пришлось бы делать уникальный ключ в tblSheetPreferences. Я бы просто на него сослался. [IMG] http://www.picshare.ru/uploads/190320/XimKsk3r3I.jpg [/IMG] ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 13:56 |
|
|
start [/forum/topic.php?fid=45&msg=39788808&tid=1610799]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 149ms |
0 / 0 |