|
SQLite. SQLiteStudio и Foreign Key.
|
|||
---|---|---|---|
#18+
Всем привет. Использую программу SQLiteStudio (но вопрос к любой программе), для работы с SQLite. Там сделал связь таблицы A по Foreign Key к таблице B, все работает. ВОПРОС: можно ли сделать так, что бы при создании записи в таблице A она автоматом создавала в таблице B ? То есть сейчас мне приходится в 2 раза больше делать действий. Вводить в таблицу B строки и потом в таблице A их выбирать. Но может как то можно, что бы таблица A автоматом создавала в таблице B строки с ключом?? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2019, 16:25 |
|
SQLite. SQLiteStudio и Foreign Key.
|
|||
---|---|---|---|
#18+
Для начала почитай теорию реляционных БД (основы про нормальные формы, страниц 20-30) и потом поймешь что твой вопрос не имеет смысла. Наверно попутно поймешь как по-другому решать свою проблему. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2019, 21:19 |
|
SQLite. SQLiteStudio и Foreign Key.
|
|||
---|---|---|---|
#18+
Druid8, Твой вопрос звучит как: "я тут поставил забор чтоб не лазили, как теперь сделать чтобы подходя к забору автоматически через него перелезали?". Но да, сделать это можно. Есть такая штука https://www.sqlite.org/lang_createtrigger.html ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 23:24 |
|
SQLite. SQLiteStudio и Foreign Key.
|
|||
---|---|---|---|
#18+
White Owl, Объясняю в чем смысл. У меня есть таблица допустим Classes, есть таблица Localization. В Localization колонки Key RU EN .... То есть есть ключ и переводы на этот ключ. Key на него ссылаются другие таблицы через Foreign Key. Есть Classes в которой колонки типа id, name вот именно name и ссылается на Localization.Key что бы потом когда делаю запрос к Classes я получаю перевод на нужный язык колонки Name. сейчас мне приходится сначала добавлять ключ в таблицу Localization. Что бы потом добавлять записи в Classes и в name выбирать эти ключи. Было бы удобнее если бы я создавая записи в Classes, если нет ключа по name, он сам создает его в Localization.Key. В чем я не прав? Как сделать лучше. Я не много работал с базами, про триггеры не знаю. Скажите если лучше их использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 16:27 |
|
SQLite. SQLiteStudio и Foreign Key.
|
|||
---|---|---|---|
#18+
Druid8В Localization колонки Key RU EN ....Уже ужас. А если ты добавишь новый язык, ты будешь колонку добавлять? А если ты по какой-то причине забыл написать текст в колонку языка, а у тебя пользователь хочет этот язык. Ты будешь ему пустоту показывать? Локализация вообще делается совершенно другими способами, похожими на базы данных, но технически другими. Скажи на каком языке ты пишешь, подскажем как это делать правильно. В принципе можно и в базе данных хранить переводы, но тогда делают таблицу переводов в виде трех полей: Код: sql 1. 2. 3. 4. 5.
При этом ключ стараются делать строкой на "основном" языке. Не важно что у тебя за язык включен сейчас - у тебя будет либо перевод по паре key+language, а если такой строки не найдено (не перевел еще) то можно сам ключ показать пользователю. Можно делать ключ и суррогатным, но тогда тебе надо будет следить чтобы был обязательно перевод на основной язык. Это делается обычно внешней вспомогательной программой. Ты в своем коде все строки которые надо бы перевести оформляешь специальным образом, прогоняешь исходник этой программой и получаешь один "основной" язык. Это и будет у тебя созданием ключей которые ты хочешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 05:04 |
|
|
start [/forum/topic.php?fid=54&msg=39829499&tid=2008382]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 274ms |
total: | 404ms |
0 / 0 |