numerus/test
jordi fita mas bc48dd4089 Replace tag relations with array attributes
It all started when i wanted to try to filter invoices by multiple tags
using an “AND”, instead of “OR” as it was doing until now.  But
something felt off and seemed to me that i was doing thing much more
complex than needed, all to be able to list the tags as a suggestion
in the input field—which i am not doing yet.

I found this article series[0] exploring different approaches for
tagging, which includes the one i was using, and comparing their
performance.  I have not actually tested it, but it seems that i have
chosen the worst option, in both query time and storage.

I attempted to try using an array attribute to each table, which is more
or less the same they did in the articles but without using a separate
relation for tags, and i found out that all the queries were way easier
to write, and needed two joins less, so it was a no-brainer.

[0]: http://www.databasesoup.com/2015/01/tag-all-things.html
2023-04-07 21:31:35 +02:00
..
add_contact.sql Replace tag relations with array attributes 2023-04-07 21:31:35 +02:00
add_invoice.sql Replace tag relations with array attributes 2023-04-07 21:31:35 +02:00
add_product.sql Replace tag relations with array attributes 2023-04-07 21:31:35 +02:00
build_cookie.sql Remove execution grant on build_cookie to guest 2023-01-23 21:40:22 +01:00
change_password.sql Add function to change the current user’s password 2023-01-23 21:41:14 +01:00
check_cookie.sql Use user’ß email for auth funcs and return cookie on email change 2023-01-23 21:18:55 +01:00
company.sql Add company’s default payment method 2023-03-04 22:15:52 +01:00
company_user.sql Add the company relation and read-only form to edit 2023-01-24 21:46:07 +01:00
compute_new_invoice_amount.sql Add company’s default payment method 2023-03-04 22:15:52 +01:00
contact.sql Replace tag relations with array attributes 2023-04-07 21:31:35 +02:00
country.sql Use a select for company’s country field 2023-01-27 21:30:14 +01:00
country_code.sql Use a select for company’s country field 2023-01-27 21:30:14 +01:00
country_i18n.sql Use a select for company’s country field 2023-01-27 21:30:14 +01:00
currency.sql Remove an unnecessary truncate from a SQL test 2023-01-27 19:40:38 +01:00
currency_code.sql Add the company relation and read-only form to edit 2023-01-24 21:46:07 +01:00
current_user_cookie.sql Use user’ß email for auth funcs and return cookie on email change 2023-01-23 21:18:55 +01:00
current_user_email.sql Use user’ß email for auth funcs and return cookie on email change 2023-01-23 21:18:55 +01:00
discount_rate.sql Add discount_rate domain and invoice_product relation 2023-02-10 19:02:04 +01:00
edit_contact.sql Replace tag relations with array attributes 2023-04-07 21:31:35 +02:00
edit_invoice.sql Replace tag relations with array attributes 2023-04-07 21:31:35 +02:00
edit_product.sql Replace tag relations with array attributes 2023-04-07 21:31:35 +02:00
edited_invoice_product.sql Add function to edit invoices 2023-03-11 20:58:20 +01:00
email.sql Allow guest access to user_profile with an empty profile 2023-01-23 01:18:47 +01:00
encrypt_password.sql Add the schema for all function’s tests 2023-01-18 14:13:58 +01:00
ensure_role_exists.sql Add the schema for all function’s tests 2023-01-18 14:13:58 +01:00
extensions.sql Add the company relation and read-only form to edit 2023-01-24 21:46:07 +01:00
invoice.sql Replace tag relations with array attributes 2023-04-07 21:31:35 +02:00
invoice_amount.sql Add the payment method to invoices 2023-03-05 18:50:57 +01:00
invoice_number_counter.sql Add company’s default payment method 2023-03-04 22:15:52 +01:00
invoice_product.sql Add the payment method to invoices 2023-03-05 18:50:57 +01:00
invoice_product_amount.sql Add the payment method to invoices 2023-03-05 18:50:57 +01:00
invoice_product_tax.sql Add the payment method to invoices 2023-03-05 18:50:57 +01:00
invoice_status.sql Add the invoice_status relation and its i18n 2023-02-07 16:45:27 +01:00
invoice_status_i18n.sql Add the invoice_status relation and its i18n 2023-02-07 16:45:27 +01:00
invoice_tax_amount.sql Add the payment method to invoices 2023-03-05 18:50:57 +01:00
language.sql Add currency_pattern to language relation 2023-02-23 12:12:33 +01:00
login.sql Add the schema for all function’s tests 2023-01-18 14:13:58 +01:00
login_attempt.sql Implement login cookie, its verification, and logout 2023-01-17 20:58:13 +01:00
logout.sql Use user’ß email for auth funcs and return cookie on email change 2023-01-23 21:18:55 +01:00
new_invoice_amount.sql Show the invoice subtotal, taxes, and total when creating it 2023-02-23 15:31:57 +01:00
new_invoice_product.sql Add PL/pgSQL function to add invoices 2023-02-16 23:09:10 +01:00
next_invoice_number.sql Add company’s default payment method 2023-03-04 22:15:52 +01:00
parse_price.sql Fix to_price and parse_price for negative values 2023-02-23 14:42:18 +01:00
payment_method.sql Add company’s default payment method 2023-03-04 22:15:52 +01:00
product.sql Replace tag relations with array attributes 2023-04-07 21:31:35 +02:00
product_tax.sql Add company’s default payment method 2023-03-04 22:15:52 +01:00
roles.sql Setup authentication schema and user relation 2023-01-13 20:30:21 +01:00
schemas.sql Move check_cookie to public and give access to authenticator 2023-01-18 14:12:59 +01:00
set_cookie.sql Use user’ß email for auth funcs and return cookie on email change 2023-01-23 21:18:55 +01:00
tag_name.sql Add invoice tags 2023-03-10 14:02:55 +01:00
tax.sql Add company’s default payment method 2023-03-04 22:15:52 +01:00
tax_class.sql Add company’s default payment method 2023-03-04 22:15:52 +01:00
tax_rate.sql Correctly test negative tax_rate 2023-02-10 19:00:46 +01:00
to_price.sql Fix to_price and parse_price for negative values 2023-02-23 14:42:18 +01:00
user.sql Add user_profile view to update the profile with form 2023-01-22 02:23:09 +01:00
user_profile.sql Add cross-request forgery detection 2023-02-02 11:39:34 +01:00